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.
#define NUM_ABILITY_PERSONALITY 0xFF
#if P_LEGENDARY_PERFECT_IVS >= GEN_6
#define LEGENDARY_PERFECT_IV_COUNT 3
#else
#define LEGENDARY_PERFECT_IV_COUNT 0
#endif
#endif // GUARD_CONSTANTS_POKEMON_H

View File

@ -439,11 +439,11 @@ struct SpeciesInfo /*0xC4*/
u32 isHisuianForm:1;
u32 isPaldeanForm: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 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 padding4:14;
u32 padding4:12;
// Move Data
/* 0x80 */ const struct LevelUpMove *levelUpLearnset;
/* 0x84 */ const u16 *teachableLearnset;

View File

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

View File

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

View File

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

View File

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

View File

@ -5235,6 +5235,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Uxie
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sUxieLevelUpLearnset,
.teachableLearnset = sUxieTeachableLearnset,
},
@ -5307,6 +5308,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Mesprit
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sMespritLevelUpLearnset,
.teachableLearnset = sMespritTeachableLearnset,
},
@ -5378,6 +5380,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Azelf
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sAzelfLevelUpLearnset,
.teachableLearnset = sAzelfTeachableLearnset,
},
@ -5450,6 +5453,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -5514,6 +5518,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -5588,6 +5593,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -5652,6 +5658,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -5723,6 +5730,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Heatran
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sHeatranLevelUpLearnset,
.teachableLearnset = sHeatranTeachableLearnset,
},
@ -5792,6 +5800,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Regigigas
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sRegigigasLevelUpLearnset,
.teachableLearnset = sRegigigasTeachableLearnset,
},
@ -5864,6 +5873,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -5929,6 +5939,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -6001,6 +6012,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
gShinyOverworldPalette_Cresselia
)
.isLegendary = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sCresseliaLevelUpLearnset,
.teachableLearnset = sCresseliaTeachableLearnset,
},
@ -6072,6 +6084,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sPhioneLevelUpLearnset,
.teachableLearnset = sPhioneTeachableLearnset,
},
@ -6141,6 +6154,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sManaphyLevelUpLearnset,
.teachableLearnset = sManaphyTeachableLearnset,
},
@ -6213,6 +6227,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sDarkraiLevelUpLearnset,
.teachableLearnset = sDarkraiTeachableLearnset,
},
@ -6287,6 +6302,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sShayminLandLevelUpLearnset,
.teachableLearnset = sShayminLandTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -6350,6 +6366,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
FOOTPRINT(Shaymin)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT,
.levelUpLearnset = sShayminSkyLevelUpLearnset,
.teachableLearnset = sShayminSkyTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -6375,63 +6392,64 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 1,
#endif
#define ARCEUS_SPECIES_INFO(type, typeName, iconPal) \
{ \
.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, \
ARCEUS_ICON(typeName, iconPal) \
FOOTPRINT(Arceus) \
OVERWORLD( \
sPicTable_Arceus ##typeName, \
SIZE_64x64, \
SHADOW_SIZE_M, \
TRACKS_FOOT, \
gOverworldPalette_Arceus ##typeName, \
gShinyOverworldPalette_Arceus ##typeName \
) \
.levelUpLearnset = sArceusLevelUpLearnset, \
.teachableLearnset = sArceusTeachableLearnset, \
.formSpeciesIdTable = sArceusFormSpeciesIdTable, \
.formChangeTable = sArceusFormChangeTable, \
.isMythical = TRUE, \
.isFrontierBanned = TRUE, \
#define ARCEUS_SPECIES_INFO(type, typeName, iconPal) \
{ \
.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, \
ARCEUS_ICON(typeName, iconPal) \
FOOTPRINT(Arceus) \
OVERWORLD( \
sPicTable_Arceus ##typeName, \
SIZE_64x64, \
SHADOW_SIZE_M, \
TRACKS_FOOT, \
gOverworldPalette_Arceus ##typeName, \
gShinyOverworldPalette_Arceus ##typeName \
) \
.levelUpLearnset = sArceusLevelUpLearnset, \
.teachableLearnset = sArceusTeachableLearnset, \
.formSpeciesIdTable = sArceusFormSpeciesIdTable, \
.formChangeTable = sArceusFormChangeTable, \
.isMythical = TRUE, \
.isFrontierBanned = TRUE, \
.perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \
}
[SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal, 1),

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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