Made perfect IV count into a granular setting (#5115)

* Made perfect IV count into a granular setting

* Fixed optional parameter comment in SPECIES_NONE
This commit is contained in:
Eduardo Quezada 2024-08-08 14:46:22 -04:00 committed by GitHub
parent 36aea8b68a
commit 182809b515
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 355 additions and 200 deletions

View File

@ -335,6 +335,10 @@ enum EvolutionMode {
// Used as a signal for givemon to generate a default ability by personality. // Used as a signal for givemon to generate a default ability by personality.
#define NUM_ABILITY_PERSONALITY 0xFF #define NUM_ABILITY_PERSONALITY 0xFF
#if P_LEGENDARY_PERFECT_IVS >= GEN_6
#define LEGENDARY_PERFECT_IV_COUNT 3 #define LEGENDARY_PERFECT_IV_COUNT 3
#else
#define LEGENDARY_PERFECT_IV_COUNT 0
#endif
#endif // GUARD_CONSTANTS_POKEMON_H #endif // GUARD_CONSTANTS_POKEMON_H

View File

@ -439,11 +439,11 @@ struct SpeciesInfo /*0xC4*/
u32 isHisuianForm:1; u32 isHisuianForm:1;
u32 isPaldeanForm:1; u32 isPaldeanForm:1;
u32 cannotBeTraded:1; u32 cannotBeTraded:1;
u32 allPerfectIVs:1; u32 perfectIVCount:3; // This species will always generate with the specified amount of perfect IVs.
u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set. u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set.
u32 tmIlliterate:1; // This species will be unable to learn the universal moves. u32 tmIlliterate:1; // This species will be unable to learn the universal moves.
u32 isFrontierBanned:1; // This species is not allowed to participate in Battle Frontier facilities. u32 isFrontierBanned:1; // This species is not allowed to participate in Battle Frontier facilities.
u32 padding4:14; u32 padding4:12;
// Move Data // Move Data
/* 0x80 */ const struct LevelUpMove *levelUpLearnset; /* 0x80 */ const struct LevelUpMove *levelUpLearnset;
/* 0x84 */ const u16 *teachableLearnset; /* 0x84 */ const u16 *teachableLearnset;

View File

@ -211,7 +211,7 @@ const struct SpeciesInfo gSpeciesInfo[] =
{EVO_ITEM, ITEM_MOOMOO_MILK, SPECIES_NONE}), {EVO_ITEM, ITEM_MOOMOO_MILK, SPECIES_NONE}),
//.formSpeciesIdTable = sNoneFormSpeciesIdTable, //.formSpeciesIdTable = sNoneFormSpeciesIdTable,
//.formChangeTable = sNoneFormChangeTable, //.formChangeTable = sNoneFormChangeTable,
.allPerfectIVs = TRUE, //.perfectIVCount = NUM_STATS,
}, },
*/ */
}; };

View File

@ -2090,6 +2090,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
FOOTPRINT(Raticate) FOOTPRINT(Raticate)
.isTotem = TRUE, .isTotem = TRUE,
.isAlolanForm = TRUE, .isAlolanForm = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRaticateAlolanLevelUpLearnset, .levelUpLearnset = sRaticateAlolanLevelUpLearnset,
.teachableLearnset = sRaticateAlolanTeachableLearnset, .teachableLearnset = sRaticateAlolanTeachableLearnset,
.formSpeciesIdTable = sRaticateFormSpeciesIdTable, .formSpeciesIdTable = sRaticateFormSpeciesIdTable,
@ -3411,7 +3412,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
#endif #endif
FOOTPRINT(Pikachu) FOOTPRINT(Pikachu)
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.allPerfectIVs = TRUE, .perfectIVCount = NUM_STATS,
.levelUpLearnset = sPikachuLevelUpLearnset, .levelUpLearnset = sPikachuLevelUpLearnset,
.teachableLearnset = sPikachuTeachableLearnset, .teachableLearnset = sPikachuTeachableLearnset,
.formSpeciesIdTable = sPikachuFormSpeciesIdTable, .formSpeciesIdTable = sPikachuFormSpeciesIdTable,
@ -11836,6 +11837,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
FOOTPRINT(Marowak) FOOTPRINT(Marowak)
.isTotem = TRUE, .isTotem = TRUE,
.isAlolanForm = TRUE, .isAlolanForm = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMarowakAlolanLevelUpLearnset, .levelUpLearnset = sMarowakAlolanLevelUpLearnset,
.teachableLearnset = sMarowakAlolanTeachableLearnset, .teachableLearnset = sMarowakAlolanTeachableLearnset,
.formSpeciesIdTable = sMarowakFormSpeciesIdTable, .formSpeciesIdTable = sMarowakFormSpeciesIdTable,
@ -15575,7 +15577,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
#endif #endif
FOOTPRINT(Eevee) FOOTPRINT(Eevee)
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.allPerfectIVs = TRUE, .perfectIVCount = NUM_STATS,
.levelUpLearnset = sEeveeLevelUpLearnset, .levelUpLearnset = sEeveeLevelUpLearnset,
.teachableLearnset = sEeveeTeachableLearnset, .teachableLearnset = sEeveeTeachableLearnset,
.eggMoveLearnset = sEeveeEggMoveLearnset, .eggMoveLearnset = sEeveeEggMoveLearnset,
@ -16923,6 +16925,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
gShinyOverworldPalette_Articuno gShinyOverworldPalette_Articuno
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sArticunoLevelUpLearnset, .levelUpLearnset = sArticunoLevelUpLearnset,
.teachableLearnset = sArticunoTeachableLearnset, .teachableLearnset = sArticunoTeachableLearnset,
.formSpeciesIdTable = sArticunoFormSpeciesIdTable, .formSpeciesIdTable = sArticunoFormSpeciesIdTable,
@ -16988,6 +16991,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isGalarianForm = TRUE, .isGalarianForm = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sArticunoGalarianLevelUpLearnset, .levelUpLearnset = sArticunoGalarianLevelUpLearnset,
.teachableLearnset = sArticunoGalarianTeachableLearnset, .teachableLearnset = sArticunoGalarianTeachableLearnset,
.formSpeciesIdTable = sArticunoFormSpeciesIdTable, .formSpeciesIdTable = sArticunoFormSpeciesIdTable,
@ -17064,6 +17068,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
gShinyOverworldPalette_Zapdos gShinyOverworldPalette_Zapdos
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZapdosLevelUpLearnset, .levelUpLearnset = sZapdosLevelUpLearnset,
.teachableLearnset = sZapdosTeachableLearnset, .teachableLearnset = sZapdosTeachableLearnset,
.formSpeciesIdTable = sZapdosFormSpeciesIdTable, .formSpeciesIdTable = sZapdosFormSpeciesIdTable,
@ -17128,6 +17133,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isGalarianForm = TRUE, .isGalarianForm = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZapdosGalarianLevelUpLearnset, .levelUpLearnset = sZapdosGalarianLevelUpLearnset,
.teachableLearnset = sZapdosGalarianTeachableLearnset, .teachableLearnset = sZapdosGalarianTeachableLearnset,
.formSpeciesIdTable = sZapdosFormSpeciesIdTable, .formSpeciesIdTable = sZapdosFormSpeciesIdTable,
@ -17199,6 +17205,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
gShinyOverworldPalette_Moltres gShinyOverworldPalette_Moltres
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMoltresLevelUpLearnset, .levelUpLearnset = sMoltresLevelUpLearnset,
.teachableLearnset = sMoltresTeachableLearnset, .teachableLearnset = sMoltresTeachableLearnset,
.formSpeciesIdTable = sMoltresFormSpeciesIdTable, .formSpeciesIdTable = sMoltresFormSpeciesIdTable,
@ -17263,6 +17270,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isGalarianForm = TRUE, .isGalarianForm = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMoltresGalarianLevelUpLearnset, .levelUpLearnset = sMoltresGalarianLevelUpLearnset,
.teachableLearnset = sMoltresGalarianTeachableLearnset, .teachableLearnset = sMoltresGalarianTeachableLearnset,
.formSpeciesIdTable = sMoltresFormSpeciesIdTable, .formSpeciesIdTable = sMoltresFormSpeciesIdTable,
@ -17529,6 +17537,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMewtwoLevelUpLearnset, .levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset, .teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable, .formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -17587,6 +17596,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMewtwoLevelUpLearnset, .levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset, .teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable, .formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -17645,6 +17655,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMewtwoLevelUpLearnset, .levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset, .teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable, .formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -17721,6 +17732,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMewLevelUpLearnset, .levelUpLearnset = sMewLevelUpLearnset,
.teachableLearnset = sMewTeachableLearnset, .teachableLearnset = sMewTeachableLearnset,
}, },

View File

@ -6772,6 +6772,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
gShinyOverworldPalette_Raikou gShinyOverworldPalette_Raikou
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRaikouLevelUpLearnset, .levelUpLearnset = sRaikouLevelUpLearnset,
.teachableLearnset = sRaikouTeachableLearnset, .teachableLearnset = sRaikouTeachableLearnset,
}, },
@ -6846,6 +6847,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
gShinyOverworldPalette_Entei gShinyOverworldPalette_Entei
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sEnteiLevelUpLearnset, .levelUpLearnset = sEnteiLevelUpLearnset,
.teachableLearnset = sEnteiTeachableLearnset, .teachableLearnset = sEnteiTeachableLearnset,
}, },
@ -6920,6 +6922,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
gShinyOverworldPalette_Suicune gShinyOverworldPalette_Suicune
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sSuicuneLevelUpLearnset, .levelUpLearnset = sSuicuneLevelUpLearnset,
.teachableLearnset = sSuicuneTeachableLearnset, .teachableLearnset = sSuicuneTeachableLearnset,
}, },
@ -7243,6 +7246,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLugiaLevelUpLearnset, .levelUpLearnset = sLugiaLevelUpLearnset,
.teachableLearnset = sLugiaTeachableLearnset, .teachableLearnset = sLugiaTeachableLearnset,
}, },
@ -7316,6 +7320,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sHoOhLevelUpLearnset, .levelUpLearnset = sHoOhLevelUpLearnset,
.teachableLearnset = sHoOhTeachableLearnset, .teachableLearnset = sHoOhTeachableLearnset,
}, },
@ -7389,6 +7394,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCelebiLevelUpLearnset, .levelUpLearnset = sCelebiLevelUpLearnset,
.teachableLearnset = sCelebiTeachableLearnset, .teachableLearnset = sCelebiTeachableLearnset,
}, },

View File

@ -10212,6 +10212,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
gShinyOverworldPalette_Regirock gShinyOverworldPalette_Regirock
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegirockLevelUpLearnset, .levelUpLearnset = sRegirockLevelUpLearnset,
.teachableLearnset = sRegirockTeachableLearnset, .teachableLearnset = sRegirockTeachableLearnset,
}, },
@ -10281,6 +10282,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
gShinyOverworldPalette_Regice gShinyOverworldPalette_Regice
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegiceLevelUpLearnset, .levelUpLearnset = sRegiceLevelUpLearnset,
.teachableLearnset = sRegiceTeachableLearnset, .teachableLearnset = sRegiceTeachableLearnset,
}, },
@ -10351,6 +10353,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
gShinyOverworldPalette_Registeel gShinyOverworldPalette_Registeel
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegisteelLevelUpLearnset, .levelUpLearnset = sRegisteelLevelUpLearnset,
.teachableLearnset = sRegisteelTeachableLearnset, .teachableLearnset = sRegisteelTeachableLearnset,
}, },
@ -10421,6 +10424,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
gShinyOverworldPalette_Latias gShinyOverworldPalette_Latias
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLatiasLevelUpLearnset, .levelUpLearnset = sLatiasLevelUpLearnset,
.teachableLearnset = sLatiasTeachableLearnset, .teachableLearnset = sLatiasTeachableLearnset,
.formSpeciesIdTable = sLatiasFormSpeciesIdTable, .formSpeciesIdTable = sLatiasFormSpeciesIdTable,
@ -10479,6 +10483,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
FOOTPRINT(Latias) FOOTPRINT(Latias)
.isLegendary = TRUE, .isLegendary = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLatiasLevelUpLearnset, .levelUpLearnset = sLatiasLevelUpLearnset,
.teachableLearnset = sLatiasTeachableLearnset, .teachableLearnset = sLatiasTeachableLearnset,
.formSpeciesIdTable = sLatiasFormSpeciesIdTable, .formSpeciesIdTable = sLatiasFormSpeciesIdTable,
@ -10552,6 +10557,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
gShinyOverworldPalette_Latios gShinyOverworldPalette_Latios
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLatiosLevelUpLearnset, .levelUpLearnset = sLatiosLevelUpLearnset,
.teachableLearnset = sLatiosTeachableLearnset, .teachableLearnset = sLatiosTeachableLearnset,
.formSpeciesIdTable = sLatiosFormSpeciesIdTable, .formSpeciesIdTable = sLatiosFormSpeciesIdTable,
@ -10610,6 +10616,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
FOOTPRINT(Latios) FOOTPRINT(Latios)
.isLegendary = TRUE, .isLegendary = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLatiosLevelUpLearnset, .levelUpLearnset = sLatiosLevelUpLearnset,
.teachableLearnset = sLatiosTeachableLearnset, .teachableLearnset = sLatiosTeachableLearnset,
.formSpeciesIdTable = sLatiosFormSpeciesIdTable, .formSpeciesIdTable = sLatiosFormSpeciesIdTable,
@ -10684,6 +10691,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKyogreLevelUpLearnset, .levelUpLearnset = sKyogreLevelUpLearnset,
.teachableLearnset = sKyogreTeachableLearnset, .teachableLearnset = sKyogreTeachableLearnset,
.formSpeciesIdTable = sKyogreFormSpeciesIdTable, .formSpeciesIdTable = sKyogreFormSpeciesIdTable,
@ -10741,6 +10749,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isPrimalReversion = TRUE, .isPrimalReversion = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKyogreLevelUpLearnset, .levelUpLearnset = sKyogreLevelUpLearnset,
.teachableLearnset = sKyogreTeachableLearnset, .teachableLearnset = sKyogreTeachableLearnset,
.formSpeciesIdTable = sKyogreFormSpeciesIdTable, .formSpeciesIdTable = sKyogreFormSpeciesIdTable,
@ -10814,6 +10823,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGroudonLevelUpLearnset, .levelUpLearnset = sGroudonLevelUpLearnset,
.teachableLearnset = sGroudonTeachableLearnset, .teachableLearnset = sGroudonTeachableLearnset,
.formSpeciesIdTable = sGroudonFormSpeciesIdTable, .formSpeciesIdTable = sGroudonFormSpeciesIdTable,
@ -10872,6 +10882,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isPrimalReversion = TRUE, .isPrimalReversion = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGroudonLevelUpLearnset, .levelUpLearnset = sGroudonLevelUpLearnset,
.teachableLearnset = sGroudonTeachableLearnset, .teachableLearnset = sGroudonTeachableLearnset,
.formSpeciesIdTable = sGroudonFormSpeciesIdTable, .formSpeciesIdTable = sGroudonFormSpeciesIdTable,
@ -10948,6 +10959,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRayquazaLevelUpLearnset, .levelUpLearnset = sRayquazaLevelUpLearnset,
.teachableLearnset = sRayquazaTeachableLearnset, .teachableLearnset = sRayquazaTeachableLearnset,
.formSpeciesIdTable = sRayquazaFormSpeciesIdTable, .formSpeciesIdTable = sRayquazaFormSpeciesIdTable,
@ -11008,6 +11020,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRayquazaLevelUpLearnset, .levelUpLearnset = sRayquazaLevelUpLearnset,
.teachableLearnset = sRayquazaTeachableLearnset, .teachableLearnset = sRayquazaTeachableLearnset,
.formSpeciesIdTable = sRayquazaFormSpeciesIdTable, .formSpeciesIdTable = sRayquazaFormSpeciesIdTable,
@ -11084,6 +11097,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sJirachiLevelUpLearnset, .levelUpLearnset = sJirachiLevelUpLearnset,
.teachableLearnset = sJirachiTeachableLearnset, .teachableLearnset = sJirachiTeachableLearnset,
}, },
@ -11154,6 +11168,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDeoxysNormalLevelUpLearnset, .levelUpLearnset = sDeoxysNormalLevelUpLearnset,
.teachableLearnset = sDeoxysNormalTeachableLearnset, .teachableLearnset = sDeoxysNormalTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable, .formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -11215,6 +11230,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDeoxysAttackLevelUpLearnset, .levelUpLearnset = sDeoxysAttackLevelUpLearnset,
.teachableLearnset = sDeoxysAttackTeachableLearnset, .teachableLearnset = sDeoxysAttackTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable, .formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -11276,6 +11292,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDeoxysDefenseLevelUpLearnset, .levelUpLearnset = sDeoxysDefenseLevelUpLearnset,
.teachableLearnset = sDeoxysDefenseTeachableLearnset, .teachableLearnset = sDeoxysDefenseTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable, .formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -11337,6 +11354,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDeoxysSpeedLevelUpLearnset, .levelUpLearnset = sDeoxysSpeedLevelUpLearnset,
.teachableLearnset = sDeoxysSpeedTeachableLearnset, .teachableLearnset = sDeoxysSpeedTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable, .formSpeciesIdTable = sDeoxysFormSpeciesIdTable,

View File

@ -5235,6 +5235,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Uxie gShinyOverworldPalette_Uxie
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUxieLevelUpLearnset, .levelUpLearnset = sUxieLevelUpLearnset,
.teachableLearnset = sUxieTeachableLearnset, .teachableLearnset = sUxieTeachableLearnset,
}, },
@ -5307,6 +5308,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Mesprit gShinyOverworldPalette_Mesprit
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMespritLevelUpLearnset, .levelUpLearnset = sMespritLevelUpLearnset,
.teachableLearnset = sMespritTeachableLearnset, .teachableLearnset = sMespritTeachableLearnset,
}, },
@ -5378,6 +5380,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Azelf gShinyOverworldPalette_Azelf
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sAzelfLevelUpLearnset, .levelUpLearnset = sAzelfLevelUpLearnset,
.teachableLearnset = sAzelfTeachableLearnset, .teachableLearnset = sAzelfTeachableLearnset,
}, },
@ -5450,6 +5453,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDialgaLevelUpLearnset, .levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset, .teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable, .formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -5514,6 +5518,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDialgaLevelUpLearnset, .levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset, .teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable, .formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -5588,6 +5593,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPalkiaLevelUpLearnset, .levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset, .teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable, .formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -5652,6 +5658,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPalkiaLevelUpLearnset, .levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset, .teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable, .formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -5723,6 +5730,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Heatran gShinyOverworldPalette_Heatran
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sHeatranLevelUpLearnset, .levelUpLearnset = sHeatranLevelUpLearnset,
.teachableLearnset = sHeatranTeachableLearnset, .teachableLearnset = sHeatranTeachableLearnset,
}, },
@ -5792,6 +5800,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Regigigas gShinyOverworldPalette_Regigigas
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegigigasLevelUpLearnset, .levelUpLearnset = sRegigigasLevelUpLearnset,
.teachableLearnset = sRegigigasTeachableLearnset, .teachableLearnset = sRegigigasTeachableLearnset,
}, },
@ -5864,6 +5873,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGiratinaLevelUpLearnset, .levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset, .teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable, .formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -5929,6 +5939,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGiratinaLevelUpLearnset, .levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset, .teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable, .formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -6001,6 +6012,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Cresselia gShinyOverworldPalette_Cresselia
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCresseliaLevelUpLearnset, .levelUpLearnset = sCresseliaLevelUpLearnset,
.teachableLearnset = sCresseliaTeachableLearnset, .teachableLearnset = sCresseliaTeachableLearnset,
}, },
@ -6072,6 +6084,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPhioneLevelUpLearnset, .levelUpLearnset = sPhioneLevelUpLearnset,
.teachableLearnset = sPhioneTeachableLearnset, .teachableLearnset = sPhioneTeachableLearnset,
}, },
@ -6141,6 +6154,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sManaphyLevelUpLearnset, .levelUpLearnset = sManaphyLevelUpLearnset,
.teachableLearnset = sManaphyTeachableLearnset, .teachableLearnset = sManaphyTeachableLearnset,
}, },
@ -6213,6 +6227,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDarkraiLevelUpLearnset, .levelUpLearnset = sDarkraiLevelUpLearnset,
.teachableLearnset = sDarkraiTeachableLearnset, .teachableLearnset = sDarkraiTeachableLearnset,
}, },
@ -6287,6 +6302,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sShayminLandLevelUpLearnset, .levelUpLearnset = sShayminLandLevelUpLearnset,
.teachableLearnset = sShayminLandTeachableLearnset, .teachableLearnset = sShayminLandTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable, .formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -6350,6 +6366,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
FOOTPRINT(Shaymin) FOOTPRINT(Shaymin)
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sShayminSkyLevelUpLearnset, .levelUpLearnset = sShayminSkyLevelUpLearnset,
.teachableLearnset = sShayminSkyTeachableLearnset, .teachableLearnset = sShayminSkyTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable, .formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -6432,6 +6449,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.formChangeTable = sArceusFormChangeTable, \ .formChangeTable = sArceusFormChangeTable, \
.isMythical = TRUE, \ .isMythical = TRUE, \
.isFrontierBanned = TRUE, \ .isFrontierBanned = TRUE, \
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \
} }
[SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal, 1), [SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal, 1),

View File

@ -62,6 +62,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sVictiniLevelUpLearnset, .levelUpLearnset = sVictiniLevelUpLearnset,
.teachableLearnset = sVictiniTeachableLearnset, .teachableLearnset = sVictiniTeachableLearnset,
}, },
@ -10795,6 +10796,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_Cobalion gShinyOverworldPalette_Cobalion
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCobalionLevelUpLearnset, .levelUpLearnset = sCobalionLevelUpLearnset,
.teachableLearnset = sCobalionTeachableLearnset, .teachableLearnset = sCobalionTeachableLearnset,
}, },
@ -10858,6 +10860,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_Terrakion gShinyOverworldPalette_Terrakion
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTerrakionLevelUpLearnset, .levelUpLearnset = sTerrakionLevelUpLearnset,
.teachableLearnset = sTerrakionTeachableLearnset, .teachableLearnset = sTerrakionTeachableLearnset,
}, },
@ -10921,6 +10924,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_Virizion gShinyOverworldPalette_Virizion
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sVirizionLevelUpLearnset, .levelUpLearnset = sVirizionLevelUpLearnset,
.teachableLearnset = sVirizionTeachableLearnset, .teachableLearnset = sVirizionTeachableLearnset,
}, },
@ -10985,6 +10989,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_TornadusIncarnate gShinyOverworldPalette_TornadusIncarnate
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTornadusLevelUpLearnset, .levelUpLearnset = sTornadusLevelUpLearnset,
.teachableLearnset = sTornadusTeachableLearnset, .teachableLearnset = sTornadusTeachableLearnset,
.formSpeciesIdTable = sTornadusFormSpeciesIdTable, .formSpeciesIdTable = sTornadusFormSpeciesIdTable,
@ -11040,6 +11045,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 1, .iconPalIndex = 1,
FOOTPRINT(Tornadus) FOOTPRINT(Tornadus)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTornadusLevelUpLearnset, .levelUpLearnset = sTornadusLevelUpLearnset,
.teachableLearnset = sTornadusTeachableLearnset, .teachableLearnset = sTornadusTeachableLearnset,
.formSpeciesIdTable = sTornadusFormSpeciesIdTable, .formSpeciesIdTable = sTornadusFormSpeciesIdTable,
@ -11106,6 +11112,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_ThundurusIncarnate gShinyOverworldPalette_ThundurusIncarnate
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sThundurusLevelUpLearnset, .levelUpLearnset = sThundurusLevelUpLearnset,
.teachableLearnset = sThundurusTeachableLearnset, .teachableLearnset = sThundurusTeachableLearnset,
.formSpeciesIdTable = sThundurusFormSpeciesIdTable, .formSpeciesIdTable = sThundurusFormSpeciesIdTable,
@ -11162,6 +11169,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(Thundurus) FOOTPRINT(Thundurus)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sThundurusLevelUpLearnset, .levelUpLearnset = sThundurusLevelUpLearnset,
.teachableLearnset = sThundurusTeachableLearnset, .teachableLearnset = sThundurusTeachableLearnset,
.formSpeciesIdTable = sThundurusFormSpeciesIdTable, .formSpeciesIdTable = sThundurusFormSpeciesIdTable,
@ -11228,6 +11236,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sReshiramLevelUpLearnset, .levelUpLearnset = sReshiramLevelUpLearnset,
.teachableLearnset = sReshiramTeachableLearnset, .teachableLearnset = sReshiramTeachableLearnset,
}, },
@ -11292,6 +11301,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZekromLevelUpLearnset, .levelUpLearnset = sZekromLevelUpLearnset,
.teachableLearnset = sZekromTeachableLearnset, .teachableLearnset = sZekromTeachableLearnset,
}, },
@ -11356,6 +11366,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
gShinyOverworldPalette_LandorusIncarnate gShinyOverworldPalette_LandorusIncarnate
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLandorusLevelUpLearnset, .levelUpLearnset = sLandorusLevelUpLearnset,
.teachableLearnset = sLandorusTeachableLearnset, .teachableLearnset = sLandorusTeachableLearnset,
.formSpeciesIdTable = sLandorusFormSpeciesIdTable, .formSpeciesIdTable = sLandorusFormSpeciesIdTable,
@ -11411,6 +11422,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(Landorus) FOOTPRINT(Landorus)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLandorusLevelUpLearnset, .levelUpLearnset = sLandorusLevelUpLearnset,
.teachableLearnset = sLandorusTeachableLearnset, .teachableLearnset = sLandorusTeachableLearnset,
.formSpeciesIdTable = sLandorusFormSpeciesIdTable, .formSpeciesIdTable = sLandorusFormSpeciesIdTable,
@ -11480,6 +11492,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKyuremLevelUpLearnset, .levelUpLearnset = sKyuremLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset, .teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable, .formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -11544,6 +11557,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKyuremWhiteLevelUpLearnset, .levelUpLearnset = sKyuremWhiteLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset, .teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable, .formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -11607,6 +11621,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKyuremBlackLevelUpLearnset, .levelUpLearnset = sKyuremBlackLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset, .teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable, .formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -11673,6 +11688,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKeldeoLevelUpLearnset, .levelUpLearnset = sKeldeoLevelUpLearnset,
.teachableLearnset = sKeldeoTeachableLearnset, .teachableLearnset = sKeldeoTeachableLearnset,
.formSpeciesIdTable = sKeldeoFormSpeciesIdTable, .formSpeciesIdTable = sKeldeoFormSpeciesIdTable,
@ -11730,6 +11746,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
FOOTPRINT(Keldeo) FOOTPRINT(Keldeo)
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKeldeoLevelUpLearnset, .levelUpLearnset = sKeldeoLevelUpLearnset,
.teachableLearnset = sKeldeoTeachableLearnset, .teachableLearnset = sKeldeoTeachableLearnset,
.formSpeciesIdTable = sKeldeoFormSpeciesIdTable, .formSpeciesIdTable = sKeldeoFormSpeciesIdTable,
@ -11802,6 +11819,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMeloettaLevelUpLearnset, .levelUpLearnset = sMeloettaLevelUpLearnset,
.teachableLearnset = sMeloettaTeachableLearnset, .teachableLearnset = sMeloettaTeachableLearnset,
.formSpeciesIdTable = sMeloettaFormSpeciesIdTable, .formSpeciesIdTable = sMeloettaFormSpeciesIdTable,
@ -11871,6 +11889,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMeloettaLevelUpLearnset, .levelUpLearnset = sMeloettaLevelUpLearnset,
.teachableLearnset = sMeloettaTeachableLearnset, .teachableLearnset = sMeloettaTeachableLearnset,
.formSpeciesIdTable = sMeloettaFormSpeciesIdTable, .formSpeciesIdTable = sMeloettaFormSpeciesIdTable,
@ -11939,6 +11958,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.formChangeTable = sGenesectFormChangeTable, \ .formChangeTable = sGenesectFormChangeTable, \
.isMythical = TRUE, \ .isMythical = TRUE, \
.isFrontierBanned = TRUE, \ .isFrontierBanned = TRUE, \
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \
} }
[SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect), [SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect),

View File

@ -5280,6 +5280,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sXerneasLevelUpLearnset, .levelUpLearnset = sXerneasLevelUpLearnset,
.teachableLearnset = sXerneasTeachableLearnset, .teachableLearnset = sXerneasTeachableLearnset,
.formSpeciesIdTable = sXerneasFormSpeciesIdTable, .formSpeciesIdTable = sXerneasFormSpeciesIdTable,
@ -5340,6 +5341,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sXerneasLevelUpLearnset, .levelUpLearnset = sXerneasLevelUpLearnset,
.teachableLearnset = sXerneasTeachableLearnset, .teachableLearnset = sXerneasTeachableLearnset,
.formSpeciesIdTable = sXerneasFormSpeciesIdTable, .formSpeciesIdTable = sXerneasFormSpeciesIdTable,
@ -5407,6 +5409,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sYveltalLevelUpLearnset, .levelUpLearnset = sYveltalLevelUpLearnset,
.teachableLearnset = sYveltalTeachableLearnset, .teachableLearnset = sYveltalTeachableLearnset,
}, },
@ -5468,6 +5471,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZygardeLevelUpLearnset, .levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset, .teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5528,6 +5532,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZygardeLevelUpLearnset, .levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset, .teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5580,6 +5585,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
FOOTPRINT(Zygarde) FOOTPRINT(Zygarde)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZygardeLevelUpLearnset, .levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset, .teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5633,6 +5639,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
FOOTPRINT(Zygarde) FOOTPRINT(Zygarde)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZygardeLevelUpLearnset, .levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset, .teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5690,6 +5697,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
FOOTPRINT(Zygarde) FOOTPRINT(Zygarde)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZygardeLevelUpLearnset, .levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset, .teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable, .formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5757,6 +5765,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDiancieLevelUpLearnset, .levelUpLearnset = sDiancieLevelUpLearnset,
.teachableLearnset = sDiancieTeachableLearnset, .teachableLearnset = sDiancieTeachableLearnset,
.formSpeciesIdTable = sDiancieFormSpeciesIdTable, .formSpeciesIdTable = sDiancieFormSpeciesIdTable,
@ -5816,6 +5825,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.isMythical = TRUE, .isMythical = TRUE,
.isMegaEvolution = TRUE, .isMegaEvolution = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDiancieLevelUpLearnset, .levelUpLearnset = sDiancieLevelUpLearnset,
.teachableLearnset = sDiancieTeachableLearnset, .teachableLearnset = sDiancieTeachableLearnset,
.formSpeciesIdTable = sDiancieFormSpeciesIdTable, .formSpeciesIdTable = sDiancieFormSpeciesIdTable,
@ -5884,6 +5894,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sHoopaConfinedLevelUpLearnset, .levelUpLearnset = sHoopaConfinedLevelUpLearnset,
.teachableLearnset = sHoopaConfinedTeachableLearnset, .teachableLearnset = sHoopaConfinedTeachableLearnset,
.formSpeciesIdTable = sHoopaFormSpeciesIdTable, .formSpeciesIdTable = sHoopaFormSpeciesIdTable,
@ -5949,6 +5960,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sHoopaUnboundLevelUpLearnset, .levelUpLearnset = sHoopaUnboundLevelUpLearnset,
.teachableLearnset = sHoopaUnboundTeachableLearnset, .teachableLearnset = sHoopaUnboundTeachableLearnset,
.formSpeciesIdTable = sHoopaFormSpeciesIdTable, .formSpeciesIdTable = sHoopaFormSpeciesIdTable,
@ -6015,6 +6027,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sVolcanionLevelUpLearnset, .levelUpLearnset = sVolcanionLevelUpLearnset,
.teachableLearnset = sVolcanionTeachableLearnset, .teachableLearnset = sVolcanionTeachableLearnset,
}, },

View File

@ -989,6 +989,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Gumshoos gShinyOverworldPalette_Gumshoos
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGumshoosLevelUpLearnset, .levelUpLearnset = sGumshoosLevelUpLearnset,
.teachableLearnset = sGumshoosTeachableLearnset, .teachableLearnset = sGumshoosTeachableLearnset,
.formSpeciesIdTable = sGumshoosFormSpeciesIdTable, .formSpeciesIdTable = sGumshoosFormSpeciesIdTable,
@ -1234,6 +1235,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Vikavolt gShinyOverworldPalette_Vikavolt
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sVikavoltLevelUpLearnset, .levelUpLearnset = sVikavoltLevelUpLearnset,
.teachableLearnset = sVikavoltTeachableLearnset, .teachableLearnset = sVikavoltTeachableLearnset,
.formSpeciesIdTable = sVikavoltFormSpeciesIdTable, .formSpeciesIdTable = sVikavoltFormSpeciesIdTable,
@ -1781,6 +1783,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Ribombee gShinyOverworldPalette_Ribombee
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRibombeeLevelUpLearnset, .levelUpLearnset = sRibombeeLevelUpLearnset,
.teachableLearnset = sRibombeeTeachableLearnset, .teachableLearnset = sRibombeeTeachableLearnset,
.formSpeciesIdTable = sRibombeeFormSpeciesIdTable, .formSpeciesIdTable = sRibombeeFormSpeciesIdTable,
@ -2641,6 +2644,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Araquanid gShinyOverworldPalette_Araquanid
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sAraquanidLevelUpLearnset, .levelUpLearnset = sAraquanidLevelUpLearnset,
.teachableLearnset = sAraquanidTeachableLearnset, .teachableLearnset = sAraquanidTeachableLearnset,
.formSpeciesIdTable = sAraquanidFormSpeciesIdTable, .formSpeciesIdTable = sAraquanidFormSpeciesIdTable,
@ -2824,6 +2828,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Lurantis gShinyOverworldPalette_Lurantis
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLurantisLevelUpLearnset, .levelUpLearnset = sLurantisLevelUpLearnset,
.teachableLearnset = sLurantisTeachableLearnset, .teachableLearnset = sLurantisTeachableLearnset,
.formSpeciesIdTable = sLurantisFormSpeciesIdTable, .formSpeciesIdTable = sLurantisFormSpeciesIdTable,
@ -3135,6 +3140,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Salazzle gShinyOverworldPalette_Salazzle
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sSalazzleLevelUpLearnset, .levelUpLearnset = sSalazzleLevelUpLearnset,
.teachableLearnset = sSalazzleTeachableLearnset, .teachableLearnset = sSalazzleTeachableLearnset,
.formSpeciesIdTable = sSalanditFormSpeciesIdTable, .formSpeciesIdTable = sSalanditFormSpeciesIdTable,
@ -4018,6 +4024,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_TypeNull gShinyOverworldPalette_TypeNull
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTypeNullLevelUpLearnset, .levelUpLearnset = sTypeNullLevelUpLearnset,
.teachableLearnset = sTypeNullTeachableLearnset, .teachableLearnset = sTypeNullTeachableLearnset,
.evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}), .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_SILVALLY_NORMAL}),
@ -4042,7 +4049,6 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \ .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), \
.abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE, ABILITY_NONE }, \ .abilities = { ABILITY_RKS_SYSTEM, ABILITY_NONE, ABILITY_NONE }, \
.bodyColor = BODY_COLOR_GRAY, \ .bodyColor = BODY_COLOR_GRAY, \
.isLegendary = TRUE, \
.speciesName = _("Silvally"), \ .speciesName = _("Silvally"), \
.cryId = CRY_SILVALLY, \ .cryId = CRY_SILVALLY, \
.natDexNum = NATIONAL_DEX_SILVALLY, \ .natDexNum = NATIONAL_DEX_SILVALLY, \
@ -4078,6 +4084,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gOverworldPalette_Silvally, \ gOverworldPalette_Silvally, \
gShinyOverworldPalette_Silvally \ gShinyOverworldPalette_Silvally \
) \ ) \
.isLegendary = TRUE, \
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \
.levelUpLearnset = sSilvallyLevelUpLearnset, \ .levelUpLearnset = sSilvallyLevelUpLearnset, \
.teachableLearnset = sSilvallyTeachableLearnset, \ .teachableLearnset = sSilvallyTeachableLearnset, \
.formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \ .formSpeciesIdTable = sSilvallyFormSpeciesIdTable, \
@ -4455,6 +4463,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Togedemaru gShinyOverworldPalette_Togedemaru
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTogedemaruLevelUpLearnset, .levelUpLearnset = sTogedemaruLevelUpLearnset,
.teachableLearnset = sTogedemaruTeachableLearnset, .teachableLearnset = sTogedemaruTeachableLearnset,
.eggMoveLearnset = sTogedemaruEggMoveLearnset, .eggMoveLearnset = sTogedemaruEggMoveLearnset,
@ -4621,6 +4630,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 1, .iconPalIndex = 1,
FOOTPRINT(Mimikyu) FOOTPRINT(Mimikyu)
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMimikyuLevelUpLearnset, .levelUpLearnset = sMimikyuLevelUpLearnset,
.teachableLearnset = sMimikyuTeachableLearnset, .teachableLearnset = sMimikyuTeachableLearnset,
.eggMoveLearnset = sMimikyuEggMoveLearnset, .eggMoveLearnset = sMimikyuEggMoveLearnset,
@ -4674,6 +4684,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 1, .iconPalIndex = 1,
FOOTPRINT(Mimikyu) FOOTPRINT(Mimikyu)
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMimikyuLevelUpLearnset, .levelUpLearnset = sMimikyuLevelUpLearnset,
.teachableLearnset = sMimikyuTeachableLearnset, .teachableLearnset = sMimikyuTeachableLearnset,
.eggMoveLearnset = sMimikyuEggMoveLearnset, .eggMoveLearnset = sMimikyuEggMoveLearnset,
@ -5113,6 +5124,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_KommoO gShinyOverworldPalette_KommoO
) )
.isTotem = TRUE, .isTotem = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKommoOLevelUpLearnset, .levelUpLearnset = sKommoOLevelUpLearnset,
.teachableLearnset = sKommoOTeachableLearnset, .teachableLearnset = sKommoOTeachableLearnset,
.formSpeciesIdTable = sKommoOFormSpeciesIdTable, .formSpeciesIdTable = sKommoOFormSpeciesIdTable,
@ -5178,6 +5190,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_TapuKoko gShinyOverworldPalette_TapuKoko
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTapuKokoLevelUpLearnset, .levelUpLearnset = sTapuKokoLevelUpLearnset,
.teachableLearnset = sTapuKokoTeachableLearnset, .teachableLearnset = sTapuKokoTeachableLearnset,
}, },
@ -5242,6 +5255,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_TapuLele gShinyOverworldPalette_TapuLele
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTapuLeleLevelUpLearnset, .levelUpLearnset = sTapuLeleLevelUpLearnset,
.teachableLearnset = sTapuLeleTeachableLearnset, .teachableLearnset = sTapuLeleTeachableLearnset,
}, },
@ -5306,6 +5320,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_TapuBulu gShinyOverworldPalette_TapuBulu
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTapuBuluLevelUpLearnset, .levelUpLearnset = sTapuBuluLevelUpLearnset,
.teachableLearnset = sTapuBuluTeachableLearnset, .teachableLearnset = sTapuBuluTeachableLearnset,
}, },
@ -5371,6 +5386,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_TapuFini gShinyOverworldPalette_TapuFini
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTapuFiniLevelUpLearnset, .levelUpLearnset = sTapuFiniLevelUpLearnset,
.teachableLearnset = sTapuFiniTeachableLearnset, .teachableLearnset = sTapuFiniTeachableLearnset,
}, },
@ -5437,6 +5453,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.tmIlliterate = TRUE, .tmIlliterate = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCosmogLevelUpLearnset, .levelUpLearnset = sCosmogLevelUpLearnset,
.teachableLearnset = sCosmogTeachableLearnset, .teachableLearnset = sCosmogTeachableLearnset,
.evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}), .evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}),
@ -5503,6 +5520,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.tmIlliterate = TRUE, .tmIlliterate = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCosmoemLevelUpLearnset, .levelUpLearnset = sCosmoemLevelUpLearnset,
.teachableLearnset = sCosmoemTeachableLearnset, .teachableLearnset = sCosmoemTeachableLearnset,
.evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO}, .evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO},
@ -5567,6 +5585,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sSolgaleoLevelUpLearnset, .levelUpLearnset = sSolgaleoLevelUpLearnset,
.teachableLearnset = sSolgaleoTeachableLearnset, .teachableLearnset = sSolgaleoTeachableLearnset,
}, },
@ -5630,6 +5649,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sLunalaLevelUpLearnset, .levelUpLearnset = sLunalaLevelUpLearnset,
.teachableLearnset = sLunalaTeachableLearnset, .teachableLearnset = sLunalaTeachableLearnset,
}, },
@ -5694,6 +5714,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Nihilego gShinyOverworldPalette_Nihilego
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNihilegoLevelUpLearnset, .levelUpLearnset = sNihilegoLevelUpLearnset,
.teachableLearnset = sNihilegoTeachableLearnset, .teachableLearnset = sNihilegoTeachableLearnset,
}, },
@ -5758,6 +5779,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Buzzwole gShinyOverworldPalette_Buzzwole
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sBuzzwoleLevelUpLearnset, .levelUpLearnset = sBuzzwoleLevelUpLearnset,
.teachableLearnset = sBuzzwoleTeachableLearnset, .teachableLearnset = sBuzzwoleTeachableLearnset,
}, },
@ -5821,6 +5843,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Pheromosa gShinyOverworldPalette_Pheromosa
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPheromosaLevelUpLearnset, .levelUpLearnset = sPheromosaLevelUpLearnset,
.teachableLearnset = sPheromosaTeachableLearnset, .teachableLearnset = sPheromosaTeachableLearnset,
}, },
@ -5884,6 +5907,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Xurkitree gShinyOverworldPalette_Xurkitree
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sXurkitreeLevelUpLearnset, .levelUpLearnset = sXurkitreeLevelUpLearnset,
.teachableLearnset = sXurkitreeTeachableLearnset, .teachableLearnset = sXurkitreeTeachableLearnset,
}, },
@ -5949,6 +5973,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Celesteela gShinyOverworldPalette_Celesteela
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCelesteelaLevelUpLearnset, .levelUpLearnset = sCelesteelaLevelUpLearnset,
.teachableLearnset = sCelesteelaTeachableLearnset, .teachableLearnset = sCelesteelaTeachableLearnset,
}, },
@ -6013,6 +6038,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Kartana gShinyOverworldPalette_Kartana
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKartanaLevelUpLearnset, .levelUpLearnset = sKartanaLevelUpLearnset,
.teachableLearnset = sKartanaTeachableLearnset, .teachableLearnset = sKartanaTeachableLearnset,
}, },
@ -6076,6 +6102,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Guzzlord gShinyOverworldPalette_Guzzlord
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGuzzlordLevelUpLearnset, .levelUpLearnset = sGuzzlordLevelUpLearnset,
.teachableLearnset = sGuzzlordTeachableLearnset, .teachableLearnset = sGuzzlordTeachableLearnset,
}, },
@ -6143,6 +6170,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNecrozmaLevelUpLearnset, .levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset, .teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -6209,6 +6237,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNecrozmaLevelUpLearnset, .levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset, .teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -6276,6 +6305,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNecrozmaLevelUpLearnset, .levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset, .teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -6339,6 +6369,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isUltraBurst = TRUE, .isUltraBurst = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNecrozmaLevelUpLearnset, .levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset, .teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -6406,6 +6437,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMagearnaLevelUpLearnset, .levelUpLearnset = sMagearnaLevelUpLearnset,
.teachableLearnset = sMagearnaTeachableLearnset, .teachableLearnset = sMagearnaTeachableLearnset,
.formSpeciesIdTable = sMagearnaFormSpeciesIdTable, .formSpeciesIdTable = sMagearnaFormSpeciesIdTable,
@ -6460,6 +6492,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Magearna) FOOTPRINT(Magearna)
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMagearnaLevelUpLearnset, .levelUpLearnset = sMagearnaLevelUpLearnset,
.teachableLearnset = sMagearnaTeachableLearnset, .teachableLearnset = sMagearnaTeachableLearnset,
.formSpeciesIdTable = sMagearnaFormSpeciesIdTable, .formSpeciesIdTable = sMagearnaFormSpeciesIdTable,
@ -6527,6 +6560,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMarshadowLevelUpLearnset, .levelUpLearnset = sMarshadowLevelUpLearnset,
.teachableLearnset = sMarshadowTeachableLearnset, .teachableLearnset = sMarshadowTeachableLearnset,
}, },
@ -6590,6 +6624,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Poipole gShinyOverworldPalette_Poipole
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPoipoleLevelUpLearnset, .levelUpLearnset = sPoipoleLevelUpLearnset,
.teachableLearnset = sPoipoleTeachableLearnset, .teachableLearnset = sPoipoleTeachableLearnset,
.evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}), .evolutions = EVOLUTION({EVO_MOVE, MOVE_DRAGON_PULSE, SPECIES_NAGANADEL}),
@ -6652,6 +6687,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Naganadel gShinyOverworldPalette_Naganadel
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sNaganadelLevelUpLearnset, .levelUpLearnset = sNaganadelLevelUpLearnset,
.teachableLearnset = sNaganadelTeachableLearnset, .teachableLearnset = sNaganadelTeachableLearnset,
}, },
@ -6715,6 +6751,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Stakataka gShinyOverworldPalette_Stakataka
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sStakatakaLevelUpLearnset, .levelUpLearnset = sStakatakaLevelUpLearnset,
.teachableLearnset = sStakatakaTeachableLearnset, .teachableLearnset = sStakatakaTeachableLearnset,
}, },
@ -6778,6 +6815,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
gShinyOverworldPalette_Blacephalon gShinyOverworldPalette_Blacephalon
) )
.isUltraBeast = TRUE, .isUltraBeast = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sBlacephalonLevelUpLearnset, .levelUpLearnset = sBlacephalonLevelUpLearnset,
.teachableLearnset = sBlacephalonTeachableLearnset, .teachableLearnset = sBlacephalonTeachableLearnset,
}, },
@ -6841,6 +6879,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZeraoraLevelUpLearnset, .levelUpLearnset = sZeraoraLevelUpLearnset,
.teachableLearnset = sZeraoraTeachableLearnset, .teachableLearnset = sZeraoraTeachableLearnset,
}, },
@ -6904,6 +6943,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMeltanLevelUpLearnset, .levelUpLearnset = sMeltanLevelUpLearnset,
.teachableLearnset = sMeltanTeachableLearnset, .teachableLearnset = sMeltanTeachableLearnset,
}, },
@ -6965,6 +7005,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMelmetalLevelUpLearnset, .levelUpLearnset = sMelmetalLevelUpLearnset,
.teachableLearnset = sMelmetalTeachableLearnset, .teachableLearnset = sMelmetalTeachableLearnset,
.formSpeciesIdTable = sMelmetalFormSpeciesIdTable, .formSpeciesIdTable = sMelmetalFormSpeciesIdTable,
@ -7023,6 +7064,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isMythical = TRUE, .isMythical = TRUE,
.isGigantamax = TRUE, .isGigantamax = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMelmetalLevelUpLearnset, .levelUpLearnset = sMelmetalLevelUpLearnset,
.teachableLearnset = sMelmetalTeachableLearnset, .teachableLearnset = sMelmetalTeachableLearnset,
.formSpeciesIdTable = sMelmetalFormSpeciesIdTable, .formSpeciesIdTable = sMelmetalFormSpeciesIdTable,

View File

@ -6261,6 +6261,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZacianLevelUpLearnset, .levelUpLearnset = sZacianLevelUpLearnset,
.teachableLearnset = sZacianTeachableLearnset, .teachableLearnset = sZacianTeachableLearnset,
.formSpeciesIdTable = sZacianFormSpeciesIdTable, .formSpeciesIdTable = sZacianFormSpeciesIdTable,
@ -6325,6 +6326,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZacianLevelUpLearnset, .levelUpLearnset = sZacianLevelUpLearnset,
.teachableLearnset = sZacianTeachableLearnset, .teachableLearnset = sZacianTeachableLearnset,
.formSpeciesIdTable = sZacianFormSpeciesIdTable, .formSpeciesIdTable = sZacianFormSpeciesIdTable,
@ -6391,6 +6393,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZamazentaLevelUpLearnset, .levelUpLearnset = sZamazentaLevelUpLearnset,
.teachableLearnset = sZamazentaTeachableLearnset, .teachableLearnset = sZamazentaTeachableLearnset,
.formSpeciesIdTable = sZamazentaFormSpeciesIdTable, .formSpeciesIdTable = sZamazentaFormSpeciesIdTable,
@ -6455,6 +6458,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZamazentaLevelUpLearnset, .levelUpLearnset = sZamazentaLevelUpLearnset,
.teachableLearnset = sZamazentaTeachableLearnset, .teachableLearnset = sZamazentaTeachableLearnset,
.formSpeciesIdTable = sZamazentaFormSpeciesIdTable, .formSpeciesIdTable = sZamazentaFormSpeciesIdTable,
@ -6522,6 +6526,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sEternatusLevelUpLearnset, .levelUpLearnset = sEternatusLevelUpLearnset,
.teachableLearnset = sEternatusTeachableLearnset, .teachableLearnset = sEternatusTeachableLearnset,
.formSpeciesIdTable = sEternatusFormSpeciesIdTable, .formSpeciesIdTable = sEternatusFormSpeciesIdTable,
@ -6578,6 +6583,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Eternatus) FOOTPRINT(Eternatus)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sEternatusLevelUpLearnset, .levelUpLearnset = sEternatusLevelUpLearnset,
.teachableLearnset = sEternatusTeachableLearnset, .teachableLearnset = sEternatusTeachableLearnset,
.formSpeciesIdTable = sEternatusFormSpeciesIdTable, .formSpeciesIdTable = sEternatusFormSpeciesIdTable,
@ -6641,6 +6647,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Kubfu gShinyOverworldPalette_Kubfu
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKubfuLevelUpLearnset, .levelUpLearnset = sKubfuLevelUpLearnset,
.teachableLearnset = sKubfuTeachableLearnset, .teachableLearnset = sKubfuTeachableLearnset,
.evolutions = EVOLUTION({EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE}, .evolutions = EVOLUTION({EVO_DARK_SCROLL, 0, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE},
@ -6706,6 +6713,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Urshifu gShinyOverworldPalette_Urshifu
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset,
.teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset,
.formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable,
@ -6763,6 +6771,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Urshifu) FOOTPRINT(Urshifu)
.isLegendary = TRUE, .isLegendary = TRUE,
.isGigantamax = TRUE, .isGigantamax = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset,
.teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset,
.formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable,
@ -6826,6 +6835,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Urshifu gShinyOverworldPalette_Urshifu
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset,
.teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset,
.formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable,
@ -6883,6 +6893,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Urshifu) FOOTPRINT(Urshifu)
.isLegendary = TRUE, .isLegendary = TRUE,
.isGigantamax = TRUE, .isGigantamax = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset,
.teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset,
.formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable,
@ -6950,6 +6961,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZarudeLevelUpLearnset, .levelUpLearnset = sZarudeLevelUpLearnset,
.teachableLearnset = sZarudeTeachableLearnset, .teachableLearnset = sZarudeTeachableLearnset,
.formSpeciesIdTable = sZarudeFormSpeciesIdTable, .formSpeciesIdTable = sZarudeFormSpeciesIdTable,
@ -7004,6 +7016,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Zarude) FOOTPRINT(Zarude)
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sZarudeLevelUpLearnset, .levelUpLearnset = sZarudeLevelUpLearnset,
.teachableLearnset = sZarudeTeachableLearnset, .teachableLearnset = sZarudeTeachableLearnset,
.formSpeciesIdTable = sZarudeFormSpeciesIdTable, .formSpeciesIdTable = sZarudeFormSpeciesIdTable,
@ -7069,6 +7082,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Regieleki gShinyOverworldPalette_Regieleki
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegielekiLevelUpLearnset, .levelUpLearnset = sRegielekiLevelUpLearnset,
.teachableLearnset = sRegielekiTeachableLearnset, .teachableLearnset = sRegielekiTeachableLearnset,
}, },
@ -7133,6 +7147,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Regidrago gShinyOverworldPalette_Regidrago
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegidragoLevelUpLearnset, .levelUpLearnset = sRegidragoLevelUpLearnset,
.teachableLearnset = sRegidragoTeachableLearnset, .teachableLearnset = sRegidragoTeachableLearnset,
}, },
@ -7195,6 +7210,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Glastrier gShinyOverworldPalette_Glastrier
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGlastrierLevelUpLearnset, .levelUpLearnset = sGlastrierLevelUpLearnset,
.teachableLearnset = sGlastrierTeachableLearnset, .teachableLearnset = sGlastrierTeachableLearnset,
}, },
@ -7258,6 +7274,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
gShinyOverworldPalette_Spectrier gShinyOverworldPalette_Spectrier
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sSpectrierLevelUpLearnset, .levelUpLearnset = sSpectrierLevelUpLearnset,
.teachableLearnset = sSpectrierTeachableLearnset, .teachableLearnset = sSpectrierTeachableLearnset,
}, },
@ -7322,6 +7339,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCalyrexLevelUpLearnset, .levelUpLearnset = sCalyrexLevelUpLearnset,
.teachableLearnset = sCalyrexTeachableLearnset, .teachableLearnset = sCalyrexTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable, .formSpeciesIdTable = sCalyrexFormSpeciesIdTable,
@ -7387,6 +7405,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCalyrexIceRiderLevelUpLearnset, .levelUpLearnset = sCalyrexIceRiderLevelUpLearnset,
.teachableLearnset = sCalyrexIceRiderTeachableLearnset, .teachableLearnset = sCalyrexIceRiderTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable, .formSpeciesIdTable = sCalyrexFormSpeciesIdTable,
@ -7451,6 +7470,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.cannotBeTraded = TRUE, .cannotBeTraded = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset, .levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset,
.teachableLearnset = sCalyrexShadowRiderTeachableLearnset, .teachableLearnset = sCalyrexShadowRiderTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable, .formSpeciesIdTable = sCalyrexFormSpeciesIdTable,
@ -7517,6 +7537,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
//, gShinyOverworldPalette_EnamorusIncarnate //, gShinyOverworldPalette_EnamorusIncarnate
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sEnamorusLevelUpLearnset, .levelUpLearnset = sEnamorusLevelUpLearnset,
.teachableLearnset = sEnamorusTeachableLearnset, .teachableLearnset = sEnamorusTeachableLearnset,
.formSpeciesIdTable = sEnamorusFormSpeciesIdTable, .formSpeciesIdTable = sEnamorusFormSpeciesIdTable,
@ -7579,6 +7600,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
//, gShinyOverworldPalette_EnamorusTherian //, gShinyOverworldPalette_EnamorusTherian
) )
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sEnamorusLevelUpLearnset, .levelUpLearnset = sEnamorusLevelUpLearnset,
.teachableLearnset = sEnamorusTeachableLearnset, .teachableLearnset = sEnamorusTeachableLearnset,
.formSpeciesIdTable = sEnamorusFormSpeciesIdTable, .formSpeciesIdTable = sEnamorusFormSpeciesIdTable,

View File

@ -5436,6 +5436,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 1, .iconPalIndex = 1,
FOOTPRINT(WoChien) FOOTPRINT(WoChien)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sWoChienLevelUpLearnset, .levelUpLearnset = sWoChienLevelUpLearnset,
.teachableLearnset = sWoChienTeachableLearnset, .teachableLearnset = sWoChienTeachableLearnset,
}, },
@ -5491,6 +5492,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(ChienPao) FOOTPRINT(ChienPao)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sChienPaoLevelUpLearnset, .levelUpLearnset = sChienPaoLevelUpLearnset,
.teachableLearnset = sChienPaoTeachableLearnset, .teachableLearnset = sChienPaoTeachableLearnset,
}, },
@ -5546,6 +5548,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(TingLu) FOOTPRINT(TingLu)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTingLuLevelUpLearnset, .levelUpLearnset = sTingLuLevelUpLearnset,
.teachableLearnset = sTingLuTeachableLearnset, .teachableLearnset = sTingLuTeachableLearnset,
}, },
@ -5602,6 +5605,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(ChiYu) FOOTPRINT(ChiYu)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sChiYuLevelUpLearnset, .levelUpLearnset = sChiYuLevelUpLearnset,
.teachableLearnset = sChiYuTeachableLearnset, .teachableLearnset = sChiYuTeachableLearnset,
}, },
@ -5770,6 +5774,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
FOOTPRINT(Koraidon) FOOTPRINT(Koraidon)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sKoraidonLevelUpLearnset, .levelUpLearnset = sKoraidonLevelUpLearnset,
.teachableLearnset = sKoraidonTeachableLearnset, .teachableLearnset = sKoraidonTeachableLearnset,
}, },
@ -5826,6 +5831,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
FOOTPRINT(Miraidon) FOOTPRINT(Miraidon)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMiraidonLevelUpLearnset, .levelUpLearnset = sMiraidonLevelUpLearnset,
.teachableLearnset = sMiraidonTeachableLearnset, .teachableLearnset = sMiraidonTeachableLearnset,
}, },
@ -6205,6 +6211,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 1, .iconPalIndex = 1,
FOOTPRINT(Okidogi) FOOTPRINT(Okidogi)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sOkidogiLevelUpLearnset, .levelUpLearnset = sOkidogiLevelUpLearnset,
.teachableLearnset = sOkidogiTeachableLearnset, .teachableLearnset = sOkidogiTeachableLearnset,
}, },
@ -6260,6 +6267,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(Munkidori) FOOTPRINT(Munkidori)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMunkidoriLevelUpLearnset, .levelUpLearnset = sMunkidoriLevelUpLearnset,
.teachableLearnset = sMunkidoriTeachableLearnset, .teachableLearnset = sMunkidoriTeachableLearnset,
}, },
@ -6315,6 +6323,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0, .iconPalIndex = 0,
FOOTPRINT(Fezandipiti) FOOTPRINT(Fezandipiti)
.isLegendary = TRUE, .isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sFezandipitiLevelUpLearnset, .levelUpLearnset = sFezandipitiLevelUpLearnset,
.teachableLearnset = sFezandipitiTeachableLearnset, .teachableLearnset = sFezandipitiTeachableLearnset,
}, },
@ -6372,6 +6381,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.formChangeTable = sOgerponFormChangeTable, \ .formChangeTable = sOgerponFormChangeTable, \
.isLegendary = TRUE, \ .isLegendary = TRUE, \
.isTeraForm = isTeraform, \ .isTeraForm = isTeraform, \
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \
} }
[SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(Teal, Mask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1, FALSE), [SPECIES_OGERPON_TEAL_MASK] = OGERPON_SPECIES_INFO(Teal, Mask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1, FALSE),
@ -6663,6 +6673,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
FOOTPRINT(TerapagosNormal) FOOTPRINT(TerapagosNormal)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTerapagosLevelUpLearnset, .levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset, .teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable, .formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6722,6 +6733,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
FOOTPRINT(TerapagosTerastal) FOOTPRINT(TerapagosTerastal)
.isLegendary = TRUE, .isLegendary = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTerapagosLevelUpLearnset, .levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset, .teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable, .formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6780,6 +6792,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.isLegendary = TRUE, .isLegendary = TRUE,
.isTeraForm = TRUE, .isTeraForm = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sTerapagosLevelUpLearnset, .levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset, .teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable, .formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6838,6 +6851,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
FOOTPRINT(Pecharunt) FOOTPRINT(Pecharunt)
.isMythical = TRUE, .isMythical = TRUE,
.isFrontierBanned = TRUE, .isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPecharuntLevelUpLearnset, .levelUpLearnset = sPecharuntLevelUpLearnset,
.teachableLearnset = sPecharuntTeachableLearnset, .teachableLearnset = sPecharuntTeachableLearnset,
}, },

View File

@ -1109,7 +1109,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
u16 checksum; u16 checksum;
u8 i; u8 i;
u8 availableIVs[NUM_STATS]; u8 availableIVs[NUM_STATS];
u8 selectedIvs[LEGENDARY_PERFECT_IV_COUNT]; u8 selectedIvs[NUM_STATS];
bool32 isShiny; bool32 isShiny;
ZeroBoxMonData(boxMon); ZeroBoxMonData(boxMon);
@ -1226,21 +1226,7 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
iv = (value & (MAX_IV_MASK << 10)) >> 10; iv = (value & (MAX_IV_MASK << 10)) >> 10;
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv); SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
if (gSpeciesInfo[species].allPerfectIVs) if (gSpeciesInfo[species].perfectIVCount != 0)
{
iv = MAX_PER_STAT_IVS;
SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv);
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv);
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv);
SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
}
else if (P_LEGENDARY_PERFECT_IVS >= GEN_6
&& (gSpeciesInfo[species].isLegendary
|| gSpeciesInfo[species].isMythical
|| gSpeciesInfo[species].isUltraBeast
|| gSpeciesInfo[species].isTotem))
{ {
iv = MAX_PER_STAT_IVS; iv = MAX_PER_STAT_IVS;
// Initialize a list of IV indices. // Initialize a list of IV indices.
@ -1249,14 +1235,14 @@ void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV,
availableIVs[i] = i; availableIVs[i] = i;
} }
// Select the 3 IVs that will be perfected. // Select the IVs that will be perfected.
for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) for (i = 0; i < NUM_STATS && i < gSpeciesInfo[species].perfectIVCount; i++)
{ {
u8 index = Random() % (NUM_STATS - i); u8 index = Random() % (NUM_STATS - i);
selectedIvs[i] = availableIVs[index]; selectedIvs[i] = availableIVs[index];
RemoveIVIndexFromList(availableIVs, index); RemoveIVIndexFromList(availableIVs, index);
} }
for (i = 0; i < LEGENDARY_PERFECT_IV_COUNT; i++) for (i = 0; i < NUM_STATS && i < gSpeciesInfo[species].perfectIVCount; i++)
{ {
switch (selectedIvs[i]) switch (selectedIvs[i])
{ {