Change Battle Frontier validation to species flag (#4341)

* Split isLegendary into isRestrictedLegendary and isSubLegendary

* Address reviews and fix build

* Update frontier_util.c

* Remove gFrontierBannedSpecies , fast edition

* Sped up name generation

* More speed up

* Split Frontier restriction into its own flag

* Mythicals shouldn't be banned always anymore

* u32

---------

Co-authored-by: Eduardo Quezada <eduardo602002@gmail.com>
This commit is contained in:
kittenchilly 2024-05-03 12:32:06 -05:00 committed by GitHub
parent 9c46b83dbd
commit 0aad2a9ba7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 152 additions and 84 deletions

View file

@ -25,6 +25,4 @@ u8 GetFrontierBrainMonNature(u8 monId);
u8 GetFrontierBrainMonEvs(u8 monId, u8 evStatId);
s32 GetFronterBrainSymbol(void);
extern const u16 gFrontierBannedSpecies[];
#endif // GUARD_FRONTIER_UTIL_H

View file

@ -425,8 +425,8 @@ struct SpeciesInfo /*0x8C*/
/* 0x7A */ u32 isLegendary:1;
u32 isMythical:1;
u32 isUltraBeast:1;
u32 isParadox:1;
u32 isTotem:1;
u32 isParadoxForm:1;
u32 isMegaEvolution:1;
u32 isPrimalReversion:1;
u32 isUltraBurst:1;
@ -438,8 +438,9 @@ struct SpeciesInfo /*0x8C*/
u32 cannotBeTraded:1;
u32 allPerfectIVs:1;
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 padding4:15;
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;
// Move Data
/* 0x80 */ const struct LevelUpMove *levelUpLearnset;
/* 0x84 */ const u16 *teachableLearnset;

View file

@ -10731,7 +10731,7 @@ bool32 CanBattlerGetOrLoseItem(u32 battler, u16 itemId)
else if (holdEffect == HOLD_EFFECT_Z_CRYSTAL)
return FALSE;
else if (holdEffect == HOLD_EFFECT_BOOSTER_ENERGY
&& (gSpeciesInfo[gBattleMons[gBattlerAttacker].species].isParadoxForm || gSpeciesInfo[gBattleMons[gBattlerTarget].species].isParadoxForm))
&& (gSpeciesInfo[gBattleMons[gBattlerAttacker].species].isParadox || gSpeciesInfo[gBattleMons[gBattlerTarget].species].isParadox))
return FALSE;
else
return TRUE;

View file

@ -15461,6 +15461,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
.iconPalIndex = 2,
FOOTPRINT(Mewtwo)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -15518,6 +15519,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
FOOTPRINT(Mewtwo)
.isLegendary = TRUE,
.isMegaEvolution = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -15575,6 +15577,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
FOOTPRINT(Mewtwo)
.isLegendary = TRUE,
.isMegaEvolution = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMewtwoLevelUpLearnset,
.teachableLearnset = sMewtwoTeachableLearnset,
.formSpeciesIdTable = sMewtwoFormSpeciesIdTable,
@ -15642,6 +15645,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] =
.iconPalIndex = 0,
FOOTPRINT(Mew)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMewLevelUpLearnset,
.teachableLearnset = sMewTeachableLearnset,
},

View file

@ -6325,6 +6325,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
.iconPalIndex = 0,
FOOTPRINT(Lugia)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sLugiaLevelUpLearnset,
.teachableLearnset = sLugiaTeachableLearnset,
},
@ -6389,6 +6390,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
.iconPalIndex = 1,
FOOTPRINT(HoOh)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sHoOhLevelUpLearnset,
.teachableLearnset = sHoOhTeachableLearnset,
},
@ -6453,6 +6455,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] =
.iconPalIndex = 1,
FOOTPRINT(Celebi)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCelebiLevelUpLearnset,
.teachableLearnset = sCelebiTeachableLearnset,
},

View file

@ -9340,6 +9340,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 2,
FOOTPRINT(Kyogre)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKyogreLevelUpLearnset,
.teachableLearnset = sKyogreTeachableLearnset,
.formSpeciesIdTable = sKyogreFormSpeciesIdTable,
@ -9396,6 +9397,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
FOOTPRINT(Kyogre)
.isLegendary = TRUE,
.isPrimalReversion = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKyogreLevelUpLearnset,
.teachableLearnset = sKyogreTeachableLearnset,
.formSpeciesIdTable = sKyogreFormSpeciesIdTable,
@ -9460,6 +9462,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Groudon)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sGroudonLevelUpLearnset,
.teachableLearnset = sGroudonTeachableLearnset,
.formSpeciesIdTable = sGroudonFormSpeciesIdTable,
@ -9517,6 +9520,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
FOOTPRINT(Groudon)
.isLegendary = TRUE,
.isPrimalReversion = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sGroudonLevelUpLearnset,
.teachableLearnset = sGroudonTeachableLearnset,
.formSpeciesIdTable = sGroudonFormSpeciesIdTable,
@ -9584,6 +9588,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 1,
FOOTPRINT(Rayquaza)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sRayquazaLevelUpLearnset,
.teachableLearnset = sRayquazaTeachableLearnset,
.formSpeciesIdTable = sRayquazaFormSpeciesIdTable,
@ -9643,6 +9648,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
FOOTPRINT(Rayquaza)
.isLegendary = TRUE,
.isMegaEvolution = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sRayquazaLevelUpLearnset,
.teachableLearnset = sRayquazaTeachableLearnset,
.formSpeciesIdTable = sRayquazaFormSpeciesIdTable,
@ -9710,6 +9716,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Jirachi)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sJirachiLevelUpLearnset,
.teachableLearnset = sJirachiTeachableLearnset,
},
@ -9771,6 +9778,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Deoxys)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDeoxysNormalLevelUpLearnset,
.teachableLearnset = sDeoxysNormalTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -9823,6 +9831,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Deoxys)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDeoxysAttackLevelUpLearnset,
.teachableLearnset = sDeoxysAttackTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -9875,6 +9884,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Deoxys)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDeoxysDefenseLevelUpLearnset,
.teachableLearnset = sDeoxysDefenseTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable,
@ -9927,6 +9937,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] =
.iconPalIndex = 0,
FOOTPRINT(Deoxys)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDeoxysSpeedLevelUpLearnset,
.teachableLearnset = sDeoxysSpeedTeachableLearnset,
.formSpeciesIdTable = sDeoxysFormSpeciesIdTable,

View file

@ -4786,6 +4786,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 2,
FOOTPRINT(Dialga)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -4841,6 +4842,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Dialga)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDialgaLevelUpLearnset,
.teachableLearnset = sDialgaTeachableLearnset,
.formSpeciesIdTable = sDialgaFormSpeciesIdTable,
@ -4906,6 +4908,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 2,
FOOTPRINT(Palkia)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -4961,6 +4964,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 2,
FOOTPRINT(Palkia)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sPalkiaLevelUpLearnset,
.teachableLearnset = sPalkiaTeachableLearnset,
.formSpeciesIdTable = sPalkiaFormSpeciesIdTable,
@ -5148,6 +5152,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Giratina)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -5204,6 +5209,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Giratina)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sGiratinaLevelUpLearnset,
.teachableLearnset = sGiratinaTeachableLearnset,
.formSpeciesIdTable = sGiratinaFormSpeciesIdTable,
@ -5330,6 +5336,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Phione)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sPhioneLevelUpLearnset,
.teachableLearnset = sPhioneTeachableLearnset,
},
@ -5390,6 +5397,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Manaphy)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sManaphyLevelUpLearnset,
.teachableLearnset = sManaphyTeachableLearnset,
},
@ -5453,6 +5461,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 0,
FOOTPRINT(Darkrai)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDarkraiLevelUpLearnset,
.teachableLearnset = sDarkraiTeachableLearnset,
},
@ -5518,6 +5527,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 1,
FOOTPRINT(Shaymin)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sShayminLandLevelUpLearnset,
.teachableLearnset = sShayminLandTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -5580,6 +5590,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.iconPalIndex = 1,
FOOTPRINT(Shaymin)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sShayminSkyLevelUpLearnset,
.teachableLearnset = sShayminSkyTeachableLearnset,
.formSpeciesIdTable = sShayminFormSpeciesIdTable,
@ -5653,6 +5664,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] =
.formSpeciesIdTable = sArceusFormSpeciesIdTable, \
.formChangeTable = sArceusFormChangeTable, \
.isMythical = TRUE, \
.isFrontierBanned = TRUE, \
}
[SPECIES_ARCEUS_NORMAL] = ARCEUS_SPECIES_INFO(TYPE_NORMAL, Normal, 1),

View file

@ -53,6 +53,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Victini)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sVictiniLevelUpLearnset,
.teachableLearnset = sVictiniTeachableLearnset,
},
@ -9747,6 +9748,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Reshiram)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sReshiramLevelUpLearnset,
.teachableLearnset = sReshiramTeachableLearnset,
},
@ -9802,6 +9804,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 2,
FOOTPRINT(Zekrom)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZekromLevelUpLearnset,
.teachableLearnset = sZekromTeachableLearnset,
},
@ -9973,6 +9976,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Kyurem)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKyuremLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -10036,6 +10040,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
FOOTPRINT(Kyurem)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKyuremWhiteLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -10098,6 +10103,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
FOOTPRINT(Kyurem)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKyuremBlackLevelUpLearnset,
.teachableLearnset = sKyuremTeachableLearnset,
.formSpeciesIdTable = sKyuremFormSpeciesIdTable,
@ -10155,6 +10161,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Keldeo)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKeldeoLevelUpLearnset,
.teachableLearnset = sKeldeoTeachableLearnset,
.formSpeciesIdTable = sKeldeoFormSpeciesIdTable,
@ -10211,6 +10218,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Keldeo)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKeldeoLevelUpLearnset,
.teachableLearnset = sKeldeoTeachableLearnset,
.formSpeciesIdTable = sKeldeoFormSpeciesIdTable,
@ -10274,6 +10282,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 4,
FOOTPRINT(Meloetta)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMeloettaLevelUpLearnset,
.teachableLearnset = sMeloettaTeachableLearnset,
.formSpeciesIdTable = sMeloettaFormSpeciesIdTable,
@ -10334,6 +10343,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.iconPalIndex = 0,
FOOTPRINT(Meloetta)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMeloettaLevelUpLearnset,
.teachableLearnset = sMeloettaTeachableLearnset,
.formSpeciesIdTable = sMeloettaFormSpeciesIdTable,
@ -10393,6 +10403,7 @@ const struct SpeciesInfo gSpeciesInfoGen5[] =
.formSpeciesIdTable = sGenesectFormSpeciesIdTable, \
.formChangeTable = sGenesectFormChangeTable, \
.isMythical = TRUE, \
.isFrontierBanned = TRUE, \
}
[SPECIES_GENESECT] = GENESECT_SPECIES_INFO(Genesect),

View file

@ -4677,6 +4677,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Xerneas)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sXerneasLevelUpLearnset,
.teachableLearnset = sXerneasTeachableLearnset,
.formSpeciesIdTable = sXerneasFormSpeciesIdTable,
@ -4728,6 +4729,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Xerneas)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sXerneasLevelUpLearnset,
.teachableLearnset = sXerneasTeachableLearnset,
.formSpeciesIdTable = sXerneasFormSpeciesIdTable,
@ -4786,6 +4788,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Yveltal)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sYveltalLevelUpLearnset,
.teachableLearnset = sYveltalTeachableLearnset,
},
@ -4838,6 +4841,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Zygarde)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -4889,6 +4893,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Zygarde)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -4940,6 +4945,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Zygarde)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -4992,6 +4998,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Zygarde)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5048,6 +5055,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Zygarde)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZygardeLevelUpLearnset,
.teachableLearnset = sZygardeTeachableLearnset,
.formSpeciesIdTable = sZygardeFormSpeciesIdTable,
@ -5106,6 +5114,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 1,
FOOTPRINT(Diancie)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDiancieLevelUpLearnset,
.teachableLearnset = sDiancieTeachableLearnset,
.formSpeciesIdTable = sDiancieFormSpeciesIdTable,
@ -5164,6 +5173,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
FOOTPRINT(Diancie)
.isMythical = TRUE,
.isMegaEvolution = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sDiancieLevelUpLearnset,
.teachableLearnset = sDiancieTeachableLearnset,
.formSpeciesIdTable = sDiancieFormSpeciesIdTable,
@ -5223,6 +5233,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Hoopa)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sHoopaConfinedLevelUpLearnset,
.teachableLearnset = sHoopaConfinedTeachableLearnset,
.formSpeciesIdTable = sHoopaFormSpeciesIdTable,
@ -5279,6 +5290,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Hoopa)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sHoopaUnboundLevelUpLearnset,
.teachableLearnset = sHoopaUnboundTeachableLearnset,
.formSpeciesIdTable = sHoopaFormSpeciesIdTable,
@ -5336,6 +5348,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] =
.iconPalIndex = 0,
FOOTPRINT(Volcanion)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sVolcanionLevelUpLearnset,
.teachableLearnset = sVolcanionTeachableLearnset,
},

View file

@ -4754,6 +4754,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Cosmog)
.isLegendary = TRUE,
.tmIlliterate = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCosmogLevelUpLearnset,
.teachableLearnset = sCosmogTeachableLearnset,
.evolutions = EVOLUTION({EVO_LEVEL, 43, SPECIES_COSMOEM}),
@ -4811,6 +4812,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Cosmoem)
.isLegendary = TRUE,
.tmIlliterate = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCosmoemLevelUpLearnset,
.teachableLearnset = sCosmoemTeachableLearnset,
.evolutions = EVOLUTION({EVO_LEVEL_DAY, 53, SPECIES_SOLGALEO},
@ -4866,6 +4868,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Solgaleo)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sSolgaleoLevelUpLearnset,
.teachableLearnset = sSolgaleoTeachableLearnset,
},
@ -4920,6 +4923,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 2,
FOOTPRINT(Lunala)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sLunalaLevelUpLearnset,
.teachableLearnset = sLunalaTeachableLearnset,
},
@ -5368,6 +5372,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Necrozma)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -5425,6 +5430,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Necrozma)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -5483,6 +5489,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Necrozma)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -5545,6 +5552,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.isLegendary = TRUE,
.isUltraBurst = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sNecrozmaLevelUpLearnset,
.teachableLearnset = sNecrozmaTeachableLearnset,
.formSpeciesIdTable = sNecrozmaFormSpeciesIdTable,
@ -5603,6 +5611,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Magearna)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMagearnaLevelUpLearnset,
.teachableLearnset = sMagearnaTeachableLearnset,
.formSpeciesIdTable = sMagearnaFormSpeciesIdTable,
@ -5656,6 +5665,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Magearna)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMagearnaLevelUpLearnset,
.teachableLearnset = sMagearnaTeachableLearnset,
.formSpeciesIdTable = sMagearnaFormSpeciesIdTable,
@ -5714,6 +5724,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Marshadow)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMarshadowLevelUpLearnset,
.teachableLearnset = sMarshadowTeachableLearnset,
},
@ -5987,6 +5998,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 0,
FOOTPRINT(Zeraora)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZeraoraLevelUpLearnset,
.teachableLearnset = sZeraoraTeachableLearnset,
},
@ -6041,6 +6053,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 2,
FOOTPRINT(Meltan)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMeltanLevelUpLearnset,
.teachableLearnset = sMeltanTeachableLearnset,
},
@ -6093,6 +6106,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
.iconPalIndex = 2,
FOOTPRINT(Melmetal)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMelmetalLevelUpLearnset,
.teachableLearnset = sMelmetalTeachableLearnset,
.formSpeciesIdTable = sMelmetalFormSpeciesIdTable,
@ -6150,6 +6164,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] =
FOOTPRINT(Melmetal)
.isMythical = TRUE,
.isGigantamax = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMelmetalLevelUpLearnset,
.teachableLearnset = sMelmetalTeachableLearnset,
.formSpeciesIdTable = sMelmetalFormSpeciesIdTable,

View file

@ -5609,6 +5609,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 2,
FOOTPRINT(Zacian)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZacianLevelUpLearnset,
.teachableLearnset = sZacianTeachableLearnset,
.formSpeciesIdTable = sZacianFormSpeciesIdTable,
@ -5664,6 +5665,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 2,
FOOTPRINT(Zacian)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZacianLevelUpLearnset,
.teachableLearnset = sZacianTeachableLearnset,
.formSpeciesIdTable = sZacianFormSpeciesIdTable,
@ -5721,6 +5723,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 2,
FOOTPRINT(Zamazenta)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZamazentaLevelUpLearnset,
.teachableLearnset = sZamazentaTeachableLearnset,
.formSpeciesIdTable = sZamazentaFormSpeciesIdTable,
@ -5776,6 +5779,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 2,
FOOTPRINT(Zamazenta)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZamazentaLevelUpLearnset,
.teachableLearnset = sZamazentaTeachableLearnset,
.formSpeciesIdTable = sZamazentaFormSpeciesIdTable,
@ -5834,6 +5838,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 0,
FOOTPRINT(Eternatus)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sEternatusLevelUpLearnset,
.teachableLearnset = sEternatusTeachableLearnset,
.formSpeciesIdTable = sEternatusFormSpeciesIdTable,
@ -5889,6 +5894,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 0,
FOOTPRINT(Eternatus)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sEternatusLevelUpLearnset,
.teachableLearnset = sEternatusTeachableLearnset,
.formSpeciesIdTable = sEternatusFormSpeciesIdTable,
@ -6228,6 +6234,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 1,
FOOTPRINT(Zarude)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZarudeLevelUpLearnset,
.teachableLearnset = sZarudeTeachableLearnset,
.formSpeciesIdTable = sZarudeFormSpeciesIdTable,
@ -6281,6 +6288,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 1,
FOOTPRINT(Zarude)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sZarudeLevelUpLearnset,
.teachableLearnset = sZarudeTeachableLearnset,
.formSpeciesIdTable = sZarudeFormSpeciesIdTable,
@ -6558,6 +6566,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
.iconPalIndex = 0,
FOOTPRINT(Calyrex)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCalyrexLevelUpLearnset,
.teachableLearnset = sCalyrexTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable,
@ -6614,6 +6623,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Calyrex)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCalyrexIceRiderLevelUpLearnset,
.teachableLearnset = sCalyrexIceRiderTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable,
@ -6669,6 +6679,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] =
FOOTPRINT(Calyrex)
.isLegendary = TRUE,
.cannotBeTraded = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset,
.teachableLearnset = sCalyrexShadowRiderTeachableLearnset,
.formSpeciesIdTable = sCalyrexFormSpeciesIdTable,

View file

@ -4390,7 +4390,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_GreatTusk,
.iconPalIndex = 0,
//FOOTPRINT(GreatTusk)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sGreatTuskLevelUpLearnset,
.teachableLearnset = sGreatTuskTeachableLearnset,
},
@ -4445,7 +4445,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_ScreamTail,
.iconPalIndex = 0,
//FOOTPRINT(ScreamTail)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sScreamTailLevelUpLearnset,
.teachableLearnset = sScreamTailTeachableLearnset,
},
@ -4500,7 +4500,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_BruteBonnet,
.iconPalIndex = 1,
//FOOTPRINT(BruteBonnet)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sBruteBonnetLevelUpLearnset,
.teachableLearnset = sBruteBonnetTeachableLearnset,
},
@ -4558,7 +4558,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_FlutterMane,
.iconPalIndex = 2,
//FOOTPRINT(FlutterMane)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sFlutterManeLevelUpLearnset,
.teachableLearnset = sFlutterManeTeachableLearnset,
},
@ -4612,7 +4612,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_SlitherWing,
.iconPalIndex = 1,
//FOOTPRINT(SlitherWing)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sSlitherWingLevelUpLearnset,
.teachableLearnset = sSlitherWingTeachableLearnset,
},
@ -4667,7 +4667,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_SandyShocks,
.iconPalIndex = 0,
//FOOTPRINT(SandyShocks)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sSandyShocksLevelUpLearnset,
.teachableLearnset = sSandyShocksTeachableLearnset,
},
@ -4722,7 +4722,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronTreads,
.iconPalIndex = 1,
//FOOTPRINT(IronTreads)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronTreadsLevelUpLearnset,
.teachableLearnset = sIronTreadsTeachableLearnset,
},
@ -4777,7 +4777,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronBundle,
.iconPalIndex = 0,
//FOOTPRINT(IronBundle)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronBundleLevelUpLearnset,
.teachableLearnset = sIronBundleTeachableLearnset,
},
@ -4832,7 +4832,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronHands,
.iconPalIndex = 0,
//FOOTPRINT(IronHands)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronHandsLevelUpLearnset,
.teachableLearnset = sIronHandsTeachableLearnset,
},
@ -4888,7 +4888,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronJugulis,
.iconPalIndex = 0,
//FOOTPRINT(IronJugulis)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronJugulisLevelUpLearnset,
.teachableLearnset = sIronJugulisTeachableLearnset,
},
@ -4944,7 +4944,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronMoth,
.iconPalIndex = 3,
//FOOTPRINT(IronMoth)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronMothLevelUpLearnset,
.teachableLearnset = sIronMothTeachableLearnset,
},
@ -4999,7 +4999,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronThorns,
.iconPalIndex = 1,
//FOOTPRINT(IronThorns)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronThornsLevelUpLearnset,
.teachableLearnset = sIronThornsTeachableLearnset,
},
@ -5598,7 +5598,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_RoaringMoon,
.iconPalIndex = 0,
//FOOTPRINT(RoaringMoon)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sRoaringMoonLevelUpLearnset,
.teachableLearnset = sRoaringMoonTeachableLearnset,
},
@ -5652,7 +5652,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronValiant,
.iconPalIndex = 1,
//FOOTPRINT(IronValiant)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronValiantLevelUpLearnset,
.teachableLearnset = sIronValiantTeachableLearnset,
},
@ -5708,6 +5708,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0,
//FOOTPRINT(Koraidon)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sKoraidonLevelUpLearnset,
.teachableLearnset = sKoraidonTeachableLearnset,
},
@ -5763,6 +5764,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 2,
//FOOTPRINT(Miraidon)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sMiraidonLevelUpLearnset,
.teachableLearnset = sMiraidonTeachableLearnset,
},
@ -5816,7 +5818,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_WalkingWake,
.iconPalIndex = 2,
//FOOTPRINT(WalkingWake)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sWalkingWakeLevelUpLearnset,
.teachableLearnset = sWalkingWakeTeachableLearnset,
},
@ -5870,7 +5872,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronLeaves,
.iconPalIndex = 1,
//FOOTPRINT(IronLeaves)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronLeavesLevelUpLearnset,
.teachableLearnset = sIronLeavesTeachableLearnset,
},
@ -6369,7 +6371,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_GougingFire,
.iconPalIndex = 5,
//FOOTPRINT(GougingFire)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sGougingFireLevelUpLearnset,
.teachableLearnset = sGougingFireTeachableLearnset,
},
@ -6424,7 +6426,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_RagingBolt,
.iconPalIndex = 2,
//FOOTPRINT(RagingBolt)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sRagingBoltLevelUpLearnset,
.teachableLearnset = sRagingBoltTeachableLearnset,
},
@ -6478,7 +6480,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronBoulder,
.iconPalIndex = 5,
//FOOTPRINT(IronBoulder)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronBoulderLevelUpLearnset,
.teachableLearnset = sIronBoulderTeachableLearnset,
},
@ -6533,7 +6535,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconSprite = gMonIcon_IronCrown,
.iconPalIndex = 3,
//FOOTPRINT(IronCrown)
.isParadoxForm = TRUE,
.isParadox = TRUE,
.levelUpLearnset = sIronCrownLevelUpLearnset,
.teachableLearnset = sIronCrownTeachableLearnset,
},
@ -6589,6 +6591,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0,
//FOOTPRINT(Terapagos)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6645,6 +6648,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0,
//FOOTPRINT(Terapagos)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6700,6 +6704,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0,
//FOOTPRINT(Terapagos)
.isLegendary = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sTerapagosLevelUpLearnset,
.teachableLearnset = sTerapagosTeachableLearnset,
.formSpeciesIdTable = sTerapagosFormSpeciesIdTable,
@ -6757,6 +6762,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] =
.iconPalIndex = 0,
//FOOTPRINT(Pecharunt)
.isMythical = TRUE,
.isFrontierBanned = TRUE,
.levelUpLearnset = sPecharuntLevelUpLearnset,
.teachableLearnset = sPecharuntTeachableLearnset,
},

View file

@ -623,20 +623,6 @@ static const u8 sFrontierBrainObjEventGfx[NUM_FRONTIER_FACILITIES][2] =
[FRONTIER_FACILITY_PYRAMID] = {OBJ_EVENT_GFX_BRANDON, FALSE},
};
const u16 gFrontierBannedSpecies[] =
{
SPECIES_MEW, SPECIES_MEWTWO,
SPECIES_HO_OH, SPECIES_LUGIA, SPECIES_CELEBI,
SPECIES_KYOGRE, SPECIES_GROUDON, SPECIES_RAYQUAZA, SPECIES_JIRACHI, SPECIES_DEOXYS,
SPECIES_DIALGA, SPECIES_PALKIA, SPECIES_GIRATINA, SPECIES_MANAPHY, SPECIES_PHIONE, SPECIES_DARKRAI, SPECIES_SHAYMIN, SPECIES_ARCEUS,
SPECIES_VICTINI, SPECIES_RESHIRAM, SPECIES_ZEKROM, SPECIES_KYUREM, SPECIES_KELDEO, SPECIES_MELOETTA, SPECIES_GENESECT,
SPECIES_XERNEAS, SPECIES_YVELTAL, SPECIES_ZYGARDE, SPECIES_DIANCIE, SPECIES_HOOPA, SPECIES_VOLCANION,
SPECIES_COSMOG, SPECIES_COSMOEM, SPECIES_SOLGALEO, SPECIES_LUNALA, SPECIES_NECROZMA, SPECIES_MAGEARNA, SPECIES_MARSHADOW, SPECIES_ZERAORA, SPECIES_MELTAN, SPECIES_MELMETAL,
SPECIES_ZACIAN, SPECIES_ZAMAZENTA, SPECIES_ETERNATUS, SPECIES_CALYREX, SPECIES_ZARUDE,
SPECIES_KORAIDON, SPECIES_MIRAIDON,
0xFFFF
};
static const u8 *const sRecordsWindowChallengeTexts[][2] =
{
[RANKING_HALL_TOWER_SINGLES] = {gText_BattleTower2, gText_FacilitySingle},
@ -1899,26 +1885,20 @@ static void CheckBattleTypeFlag(void)
#define SPECIES_PER_LINE 3
static u8 AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught)
static void AppendCaughtBannedMonSpeciesName(u16 species, u8 count, s32 numBannedMonsCaught)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
if (numBannedMonsCaught == count)
StringAppend(gStringVar1, gText_SpaceAndSpace);
else if (numBannedMonsCaught > count)
StringAppend(gStringVar1, gText_CommaSpace);
if ((count % SPECIES_PER_LINE) == 0)
{
count++;
if (numBannedMonsCaught == count)
StringAppend(gStringVar1, gText_SpaceAndSpace);
else if (numBannedMonsCaught > count)
StringAppend(gStringVar1, gText_CommaSpace);
if ((count % SPECIES_PER_LINE) == 0)
{
if (count == SPECIES_PER_LINE)
StringAppend(gStringVar1, gText_NewLine);
else
StringAppend(gStringVar1, gText_LineBreak);
}
StringAppend(gStringVar1, GetSpeciesName(species));
if (count == SPECIES_PER_LINE)
StringAppend(gStringVar1, gText_NewLine);
else
StringAppend(gStringVar1, gText_LineBreak);
}
return count;
StringAppend(gStringVar1, GetSpeciesName(species));
}
static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monLevel, u16 *speciesArray, u16 *itemsArray, u8 *count)
@ -1927,13 +1907,7 @@ static void AppendIfValid(u16 species, u16 heldItem, u16 hp, u8 lvlMode, u8 monL
if (species == SPECIES_EGG || species == SPECIES_NONE)
return;
for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF
&& gFrontierBannedSpecies[i] != GET_BASE_SPECIES_ID(species)
&& IsSpeciesEnabled(gFrontierBannedSpecies[i]); i++)
;
if (gFrontierBannedSpecies[i] != 0xFFFF)
if (gSpeciesInfo[species].isFrontierBanned)
return;
if (lvlMode == FRONTIER_LVL_50 && monLevel > FRONTIER_MAX_LEVEL_50)
return;
@ -2019,28 +1993,41 @@ static void CheckPartyIneligibility(void)
if (numEligibleMons < toChoose)
{
s32 i;
s32 caughtBannedMons = 0;
s32 species = gFrontierBannedSpecies[0];
for (i = 0; species != 0xFFFF; i++, species = gFrontierBannedSpecies[i])
u32 i;
u32 baseSpecies = 0;
u32 totalCaughtBanned = 0;
u32 caughtBanned[100] = {0};
for (i = 0; i < NUM_SPECIES; i++)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_CAUGHT))
caughtBannedMons++;
if (totalCaughtBanned >= ARRAY_COUNT(caughtBanned))
break;
baseSpecies = GET_BASE_SPECIES_ID(i);
if (baseSpecies == i)
{
if (gSpeciesInfo[baseSpecies].isFrontierBanned)
{
if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(baseSpecies), FLAG_GET_CAUGHT))
{
caughtBanned[totalCaughtBanned] = baseSpecies;
totalCaughtBanned++;
}
}
}
}
gStringVar1[0] = EOS;
gSpecialVar_0x8004 = TRUE;
count = 0;
for (i = 0; gFrontierBannedSpecies[i] != 0xFFFF; i++)
count = AppendCaughtBannedMonSpeciesName(gFrontierBannedSpecies[i], count, caughtBannedMons);
for (i = 0; i < totalCaughtBanned; i++)
AppendCaughtBannedMonSpeciesName(caughtBanned[i], i+1, totalCaughtBanned);
if (count == 0)
if (totalCaughtBanned == 0)
{
StringAppend(gStringVar1, gText_Space2);
StringAppend(gStringVar1, gText_Are);
}
else
{
if (count % SPECIES_PER_LINE == SPECIES_PER_LINE - 1)
if (totalCaughtBanned % SPECIES_PER_LINE == SPECIES_PER_LINE - 1)
StringAppend(gStringVar1, gText_LineBreak);
else
StringAppend(gStringVar1, gText_Space2);

View file

@ -6926,8 +6926,7 @@ static u8 GetPartySlotEntryStatus(s8 slot)
static bool8 GetBattleEntryEligibility(struct Pokemon *mon)
{
u16 i = 0;
u16 species;
u32 species;
if (GetMonData(mon, MON_DATA_IS_EGG)
|| GetMonData(mon, MON_DATA_LEVEL) > GetBattleEntryLevelCap()
@ -6948,11 +6947,8 @@ static bool8 GetBattleEntryEligibility(struct Pokemon *mon)
return TRUE;
default: // Battle Frontier
species = GetMonData(mon, MON_DATA_SPECIES);
for (; gFrontierBannedSpecies[i] != 0xFFFF; i++)
{
if (gFrontierBannedSpecies[i] == GET_BASE_SPECIES_ID(species))
return FALSE;
}
if (gSpeciesInfo[species].isFrontierBanned)
return FALSE;
return TRUE;
}
}

View file

@ -185,7 +185,7 @@ SINGLE_BATTLE_TEST("Booster Energy increases special defense by 30% if it is the
SINGLE_BATTLE_TEST("Booster Energy can't be flung if a Paradox species is involved")
{
GIVEN {
ASSUME(gSpeciesInfo[SPECIES_IRON_MOTH].isParadoxForm == TRUE);
ASSUME(gSpeciesInfo[SPECIES_IRON_MOTH].isParadox == TRUE);
PLAYER(SPECIES_IRON_MOTH);
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BOOSTER_ENERGY); }
} WHEN {
@ -199,7 +199,7 @@ SINGLE_BATTLE_TEST("Booster Energy can't be flung if a Paradox species is involv
SINGLE_BATTLE_TEST("Booster Energy can't be tricked if a Paradox species is involved")
{
GIVEN {
ASSUME(gSpeciesInfo[SPECIES_IRON_MOTH].isParadoxForm == TRUE);
ASSUME(gSpeciesInfo[SPECIES_IRON_MOTH].isParadox == TRUE);
PLAYER(SPECIES_IRON_MOTH) { Item(ITEM_BERRY_JUICE); }
OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_BOOSTER_ENERGY); }
} WHEN {