diff --git a/docs/tutorials/how_to_new_pokemon.md b/docs/tutorials/how_to_new_pokemon.md index 79f01acbd2..f042160573 100644 --- a/docs/tutorials/how_to_new_pokemon.md +++ b/docs/tutorials/how_to_new_pokemon.md @@ -1075,7 +1075,8 @@ These tables, unlike the regular form tables, registers how Pokémon can switch ```c #if P_FAMILY_GASTLY -static const struct FormChange sGengarFormChangeTable[] = { +static const struct FormChange sGengarFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GENGAR_MEGA, ITEM_GENGARITE}, {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GENGAR_GIGANTAMAX}, {FORM_CHANGE_TERMINATOR}, diff --git a/src/data/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 54584c5796..6926e20ef9 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -1,17 +1,20 @@ #if P_FAMILY_BULBASAUR -static const struct FormChange sVenusaurFormChangeTable[] = { +static const struct FormChange sVenusaurFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_VENUSAUR_MEGA, ITEM_VENUSAURITE}, #endif #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_VENUSAUR_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_VENUSAUR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BULBASAUR #if P_FAMILY_CHARMANDER -static const struct FormChange sCharizardFormChangeTable[] = { +static const struct FormChange sCharizardFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHARIZARD_MEGA_X, ITEM_CHARIZARDITE_X}, {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHARIZARD_MEGA_Y, ITEM_CHARIZARDITE_Y}, @@ -19,18 +22,21 @@ static const struct FormChange sCharizardFormChangeTable[] = { #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CHARIZARD_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CHARIZARD}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CHARMANDER #if P_FAMILY_SQUIRTLE -static const struct FormChange sBlastoiseFormChangeTable[] = { +static const struct FormChange sBlastoiseFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLASTOISE_MEGA, ITEM_BLASTOISINITE}, #endif #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BLASTOISE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BLASTOISE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SQUIRTLE @@ -41,24 +47,29 @@ static const struct FormChange sButterfreeFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BUTTERFREE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BUTTERFREE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CATERPIE #if P_FAMILY_WEEDLE -static const struct FormChange sBeedrillFormChangeTable[] = { +static const struct FormChange sBeedrillFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BEEDRILL_MEGA, ITEM_BEEDRILLITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BEEDRILL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_WEEDLE #if P_FAMILY_PIDGEY -static const struct FormChange sPidgeotFormChangeTable[] = { +static const struct FormChange sPidgeotFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PIDGEOT_MEGA, ITEM_PIDGEOTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_PIDGEOT}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_PIDGEY @@ -69,15 +80,18 @@ static const struct FormChange sPikachuFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_PIKACHU_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_PIKACHU}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_PIKACHU #if P_FAMILY_CLEFAIRY -static const struct FormChange sClefableFormChangeTable[] = { +static const struct FormChange sClefableFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CLEFABLE_MEGA, ITEM_CLEFABLITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CLEFABLE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CLEFAIRY @@ -88,15 +102,18 @@ static const struct FormChange sMeowthFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MEOWTH_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MEOWTH}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MEOWTH #if P_FAMILY_ABRA -static const struct FormChange sAlakazamFormChangeTable[] = { +static const struct FormChange sAlakazamFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALAKAZAM_MEGA, ITEM_ALAKAZITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ALAKAZAM}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ABRA @@ -107,46 +124,55 @@ static const struct FormChange sMachampFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MACHAMP_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MACHAMP}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MACHOP #if P_FAMILY_BELLSPROUT -static const struct FormChange sVictreebelFormChangeTable[] = { +static const struct FormChange sVictreebelFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_VICTREEBEL_MEGA, ITEM_VICTREEBELITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_VICTREEBEL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BELLSPROUT #if P_FAMILY_SLOWPOKE -static const struct FormChange sSlowbroFormChangeTable[] = { +static const struct FormChange sSlowbroFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SLOWBRO_MEGA, ITEM_SLOWBRONITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SLOWBRO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SLOWPOKE #if P_FAMILY_GASTLY -static const struct FormChange sGengarFormChangeTable[] = { +static const struct FormChange sGengarFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GENGAR_MEGA, ITEM_GENGARITE}, #endif #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GENGAR_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GENGAR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_GASTLY #if P_FAMILY_ONIX #if P_GEN_2_CROSS_EVOS -static const struct FormChange sSteelixFormChangeTable[] = { +static const struct FormChange sSteelixFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_STEELIX_MEGA, ITEM_STEELIXITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_STEELIX}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_GEN_2_CROSS_EVOS @@ -158,328 +184,400 @@ static const struct FormChange sKinglerFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_KINGLER_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_KINGLER}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_KRABBY #if P_FAMILY_KANGASKHAN -static const struct FormChange sKangaskhanFormChangeTable[] = { +static const struct FormChange sKangaskhanFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_KANGASKHAN_MEGA, ITEM_KANGASKHANITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_KANGASKHAN}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_KANGASKHAN #if P_FAMILY_STARYU -static const struct FormChange sStarmieFormChangeTable[] = { +static const struct FormChange sStarmieFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_STARMIE_MEGA, ITEM_STARMINITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_STARMIE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_STARYU #if P_FAMILY_SCYTHER #if P_GEN_2_CROSS_EVOS -static const struct FormChange sScizorFormChangeTable[] = { +static const struct FormChange sScizorFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCIZOR_MEGA, ITEM_SCIZORITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SCIZOR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_SCYTHER #if P_FAMILY_PINSIR -static const struct FormChange sPinsirFormChangeTable[] = { +static const struct FormChange sPinsirFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PINSIR_MEGA, ITEM_PINSIRITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_PINSIR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_PINSIR #if P_FAMILY_MAGIKARP -static const struct FormChange sGyaradosFormChangeTable[] = { +static const struct FormChange sGyaradosFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GYARADOS_MEGA, ITEM_GYARADOSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GYARADOS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MAGIKARP #if P_FAMILY_LAPRAS -static const struct FormChange sLaprasFormChangeTable[] = { +static const struct FormChange sLaprasFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_LAPRAS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LAPRAS #if P_FAMILY_EEVEE -static const struct FormChange sEeveeFormChangeTable[] = { +static const struct FormChange sEeveeFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_EEVEE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_EEVEE #if P_FAMILY_AERODACTYL -static const struct FormChange sAerodactylFormChangeTable[] = { +static const struct FormChange sAerodactylFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AERODACTYL_MEGA, ITEM_AERODACTYLITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_AERODACTYL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_AERODACTYL #if P_FAMILY_SNORLAX -static const struct FormChange sSnorlaxFormChangeTable[] = { +static const struct FormChange sSnorlaxFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SNORLAX}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SNORLAX #if P_FAMILY_DRATINI -static const struct FormChange sDragoniteFormChangeTable[] = { +static const struct FormChange sDragoniteFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DRAGONITE_MEGA, ITEM_DRAGONINITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DRAGONITE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO -static const struct FormChange sMewtwoFormChangeTable[] = { +static const struct FormChange sMewtwoFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEWTWO_MEGA_X, ITEM_MEWTWONITE_X}, {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEWTWO_MEGA_Y, ITEM_MEWTWONITE_Y}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MEWTWO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MEWTWO #if P_FAMILY_CHIKORITA -static const struct FormChange sMeganiumFormChangeTable[] = { +static const struct FormChange sMeganiumFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEGANIUM_MEGA, ITEM_MEGANIUMITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MEGANIUM}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CHIKORITA #if P_FAMILY_TOTODILE -static const struct FormChange sFeraligatrFormChangeTable[] = { +static const struct FormChange sFeraligatrFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_FERALIGATR_MEGA, ITEM_FERALIGITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_FERALIGATR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TOTODILE #if P_FAMILY_MAREEP -static const struct FormChange sAmpharosFormChangeTable[] = { +static const struct FormChange sAmpharosFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AMPHAROS_MEGA, ITEM_AMPHAROSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_AMPHAROS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MAREEP #if P_FAMILY_HERACROSS -static const struct FormChange sHeracrossFormChangeTable[] = { +static const struct FormChange sHeracrossFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HERACROSS_MEGA, ITEM_HERACRONITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_HERACROSS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_HERACROSS #if P_FAMILY_SKARMORY -static const struct FormChange sSkarmoryFormChangeTable[] = { +static const struct FormChange sSkarmoryFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SKARMORY_MEGA, ITEM_SKARMORITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SKARMORY}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SKARMORY #if P_FAMILY_HOUNDOUR -static const struct FormChange sHoundoomFormChangeTable[] = { +static const struct FormChange sHoundoomFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HOUNDOOM_MEGA, ITEM_HOUNDOOMINITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_HOUNDOOM}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_HOUNDOUR #if P_FAMILY_LARVITAR -static const struct FormChange sTyranitarFormChangeTable[] = { +static const struct FormChange sTyranitarFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_TYRANITAR_MEGA, ITEM_TYRANITARITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_TYRANITAR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LARVITAR #if P_FAMILY_TREECKO -static const struct FormChange sSceptileFormChangeTable[] = { +static const struct FormChange sSceptileFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCEPTILE_MEGA, ITEM_SCEPTILITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SCEPTILE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TREECKO #if P_FAMILY_TORCHIC -static const struct FormChange sBlazikenFormChangeTable[] = { +static const struct FormChange sBlazikenFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLAZIKEN_MEGA, ITEM_BLAZIKENITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BLAZIKEN}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TORCHIC #if P_FAMILY_MUDKIP -static const struct FormChange sSwampertFormChangeTable[] = { +static const struct FormChange sSwampertFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SWAMPERT_MEGA, ITEM_SWAMPERTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SWAMPERT}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MUDKIP #if P_FAMILY_RALTS -static const struct FormChange sGardevoirFormChangeTable[] = { +static const struct FormChange sGardevoirFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARDEVOIR_MEGA, ITEM_GARDEVOIRITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GARDEVOIR}, {FORM_CHANGE_TERMINATOR}, }; #if P_GEN_4_CROSS_EVOS -static const struct FormChange sGalladeFormChangeTable[] = { +static const struct FormChange sGalladeFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GALLADE_MEGA, ITEM_GALLADITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GALLADE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RALTS #if P_FAMILY_SABLEYE -static const struct FormChange sSableyeFormChangeTable[] = { +static const struct FormChange sSableyeFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SABLEYE_MEGA, ITEM_SABLENITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SABLEYE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SABLEYE #if P_FAMILY_MAWILE -static const struct FormChange sMawileFormChangeTable[] = { +static const struct FormChange sMawileFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MAWILE_MEGA, ITEM_MAWILITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MAWILE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MAWILE #if P_FAMILY_ARON -static const struct FormChange sAggronFormChangeTable[] = { +static const struct FormChange sAggronFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AGGRON_MEGA, ITEM_AGGRONITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_AGGRON}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ARON #if P_FAMILY_MEDITITE -static const struct FormChange sMedichamFormChangeTable[] = { +static const struct FormChange sMedichamFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEDICHAM_MEGA, ITEM_MEDICHAMITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MEDICHAM}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MEDITITE #if P_FAMILY_ELECTRIKE -static const struct FormChange sManectricFormChangeTable[] = { +static const struct FormChange sManectricFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MANECTRIC}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ELECTRIKE #if P_FAMILY_CARVANHA -static const struct FormChange sSharpedoFormChangeTable[] = { +static const struct FormChange sSharpedoFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SHARPEDO_MEGA, ITEM_SHARPEDONITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SHARPEDO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CARVANHA #if P_FAMILY_NUMEL -static const struct FormChange sCameruptFormChangeTable[] = { +static const struct FormChange sCameruptFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CAMERUPT}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_NUMEL #if P_FAMILY_SWABLU -static const struct FormChange sAltariaFormChangeTable[] = { +static const struct FormChange sAltariaFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALTARIA_MEGA, ITEM_ALTARIANITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ALTARIA}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SWABLU #if P_FAMILY_SHUPPET -static const struct FormChange sBanetteFormChangeTable[] = { +static const struct FormChange sBanetteFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BANETTE_MEGA, ITEM_BANETTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BANETTE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SHUPPET #if P_FAMILY_ABSOL -static const struct FormChange sAbsolFormChangeTable[] = { +static const struct FormChange sAbsolFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABSOL_MEGA, ITEM_ABSOLITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ABSOL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ABSOL #if P_FAMILY_SNORUNT -static const struct FormChange sGlalieFormChangeTable[] = { +static const struct FormChange sGlalieFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GLALIE_MEGA, ITEM_GLALITITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GLALIE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sFroslassFormChangeTable[] = { +static const struct FormChange sFroslassFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_FROSLASS_MEGA, ITEM_FROSLASSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_FROSLASS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SNORUNT #if P_FAMILY_CASTFORM -static const struct FormChange sCastformFormChangeTable[] = { +static const struct FormChange sCastformFormChangeTable[] = +{ #if OW_FOLLOWERS_WEATHER_FORMS == TRUE {FORM_CHANGE_OVERWORLD_WEATHER, SPECIES_CASTFORM_SUNNY, WEATHER_SUNNY_CLOUDS}, {FORM_CHANGE_OVERWORLD_WEATHER, SPECIES_CASTFORM_SUNNY, WEATHER_DROUGHT}, @@ -512,92 +610,111 @@ static const struct FormChange sCastformFormChangeTable[] = { #endif //P_FAMILY_CASTFORM #if P_FAMILY_BAGON -static const struct FormChange sSalamenceFormChangeTable[] = { +static const struct FormChange sSalamenceFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SALAMENCE_MEGA, ITEM_SALAMENCITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SALAMENCE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BAGON #if P_FAMILY_BELDUM -static const struct FormChange sMetagrossFormChangeTable[] = { +static const struct FormChange sMetagrossFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_METAGROSS_MEGA, ITEM_METAGROSSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_METAGROSS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BELDUM #if P_FAMILY_LATIAS -static const struct FormChange sLatiasFormChangeTable[] = { +static const struct FormChange sLatiasFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIAS_MEGA, ITEM_LATIASITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_LATIAS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LATIAS #if P_FAMILY_LATIOS -static const struct FormChange sLatiosFormChangeTable[] = { +static const struct FormChange sLatiosFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIOS_MEGA, ITEM_LATIOSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_LATIOS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LATIOS #if P_FAMILY_KYOGRE -static const struct FormChange sKyogreFormChangeTable[] = { +static const struct FormChange sKyogreFormChangeTable[] = +{ #if P_PRIMAL_REVERSIONS - {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_KYOGRE_PRIMAL, ITEM_BLUE_ORB}, + {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_KYOGRE_PRIMAL, ITEM_BLUE_ORB}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_KYOGRE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_KYOGRE #if P_FAMILY_GROUDON -static const struct FormChange sGroudonFormChangeTable[] = { +static const struct FormChange sGroudonFormChangeTable[] = +{ #if P_PRIMAL_REVERSIONS - {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_GROUDON_PRIMAL, ITEM_RED_ORB}, + {FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_GROUDON_PRIMAL, ITEM_RED_ORB}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GROUDON}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_GROUDON #if P_FAMILY_RAYQUAZA -static const struct FormChange sRayquazaFormChangeTable[] = { +static const struct FormChange sRayquazaFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_MOVE, SPECIES_RAYQUAZA_MEGA, MOVE_DRAGON_ASCENT}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_RAYQUAZA}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_RAYQUAZA #if P_FAMILY_DEOXYS -static const struct FormChange sDeoxysNormalFormChangeTable[] = { +static const struct FormChange sDeoxysNormalFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_ATTACK, ITEM_METEORITE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sDeoxysAttackFormChangeTable[] = { +static const struct FormChange sDeoxysAttackFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_DEFENSE, ITEM_METEORITE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sDeoxysDefenseFormChangeTable[] = { +static const struct FormChange sDeoxysDefenseFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_SPEED, ITEM_METEORITE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sDeoxysSpeedFormChangeTable[] = { +static const struct FormChange sDeoxysSpeedFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_DEOXYS_NORMAL, ITEM_METEORITE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DEOXYS #if P_FAMILY_BURMY -static const struct FormChange sBurmyFormChangeTable[] = { +static const struct FormChange sBurmyFormChangeTable[] = +{ {FORM_CHANGE_END_BATTLE_ENVIRONMENT, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_GRASS}, {FORM_CHANGE_END_BATTLE_ENVIRONMENT, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_LONG_GRASS}, {FORM_CHANGE_END_BATTLE_ENVIRONMENT, SPECIES_BURMY_PLANT, BATTLE_ENVIRONMENT_POND}, @@ -611,7 +728,8 @@ static const struct FormChange sBurmyFormChangeTable[] = { #endif //P_FAMILY_BURMY #if P_FAMILY_CHERUBI -static const struct FormChange sCherrimFormChangeTable[] = { +static const struct FormChange sCherrimFormChangeTable[] = +{ #if OW_FOLLOWERS_WEATHER_FORMS == TRUE {FORM_CHANGE_OVERWORLD_WEATHER, SPECIES_CHERRIM_SUNSHINE, WEATHER_DROUGHT}, {FORM_CHANGE_OVERWORLD_WEATHER, SPECIES_CHERRIM_OVERCAST, WEATHER_NONE}, @@ -635,43 +753,52 @@ static const struct FormChange sCherrimFormChangeTable[] = { #endif //P_FAMILY_CHERUBI #if P_FAMILY_BUNEARY -static const struct FormChange sLopunnyFormChangeTable[] = { +static const struct FormChange sLopunnyFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LOPUNNY_MEGA, ITEM_LOPUNNITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_LOPUNNY}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BUNEARY #if P_FAMILY_GIBLE -static const struct FormChange sGarchompFormChangeTable[] = { +static const struct FormChange sGarchompFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARCHOMP_MEGA, ITEM_GARCHOMPITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GARCHOMP}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_GIBLE #if P_FAMILY_RIOLU -static const struct FormChange sLucarioFormChangeTable[] = { +static const struct FormChange sLucarioFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LUCARIO_MEGA, ITEM_LUCARIONITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_LUCARIO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_RIOLU #if P_FAMILY_SNOVER -static const struct FormChange sAbomasnowFormChangeTable[] = { +static const struct FormChange sAbomasnowFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABOMASNOW_MEGA, ITEM_ABOMASITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ABOMASNOW}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SNOVER #if P_FAMILY_ROTOM -static const struct FormChange sRotomFormChangeTable[] = { +static const struct FormChange sRotomFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM, ITEM_ROTOM_CATALOG, 0}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_HEAT, ITEM_ROTOM_CATALOG, 1}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_WASH, ITEM_ROTOM_CATALOG, 2}, @@ -683,7 +810,8 @@ static const struct FormChange sRotomFormChangeTable[] = { #endif //P_FAMILY_ROTOM #if P_FAMILY_DIALGA -static const struct FormChange sDialgaFormChangeTable[] = { +static const struct FormChange sDialgaFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_DIALGA_ORIGIN, ITEM_ADAMANT_CRYSTAL}, {FORM_CHANGE_TERMINATOR}, @@ -691,7 +819,8 @@ static const struct FormChange sDialgaFormChangeTable[] = { #endif //P_FAMILY_DIALGA #if P_FAMILY_PALKIA -static const struct FormChange sPalkiaFormChangeTable[] = { +static const struct FormChange sPalkiaFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_PALKIA_ORIGIN, ITEM_LUSTROUS_GLOBE}, {FORM_CHANGE_TERMINATOR}, @@ -699,7 +828,8 @@ static const struct FormChange sPalkiaFormChangeTable[] = { #endif //P_FAMILY_PALKIA #if P_FAMILY_GIRATINA -static const struct FormChange sGiratinaFormChangeTable[] = { +static const struct FormChange sGiratinaFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ALTERED, ITEM_NONE}, #if I_GRISEOUS_ORB_FORM_CHANGE < GEN_9 {FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_ORB}, @@ -710,7 +840,8 @@ static const struct FormChange sGiratinaFormChangeTable[] = { #endif //P_FAMILY_GIRATINA #if P_FAMILY_SHAYMIN -static const struct FormChange sShayminFormChangeTable[] = { +static const struct FormChange sShayminFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY, STATUS1_FREEZE | STATUS1_FROSTBITE}, {FORM_CHANGE_WITHDRAW, SPECIES_SHAYMIN_LAND}, {FORM_CHANGE_TIME_OF_DAY, SPECIES_SHAYMIN_LAND, NIGHT}, @@ -720,7 +851,8 @@ static const struct FormChange sShayminFormChangeTable[] = { #endif //P_FAMILY_SHAYMIN #if P_FAMILY_ARCEUS -static const struct FormChange sArceusFormChangeTable[] = { +static const struct FormChange sArceusFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_NORMAL, ITEM_NONE, ABILITY_MULTITYPE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIGHTING, ITEM_FIST_PLATE, ABILITY_MULTITYPE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIGHTING, ITEM_FIGHTINIUM_Z, ABILITY_MULTITYPE}, @@ -761,43 +893,52 @@ static const struct FormChange sArceusFormChangeTable[] = { #endif //P_FAMILY_ARCEUS #if P_FAMILY_TEPIG -static const struct FormChange sEmboarFormChangeTable[] = { +static const struct FormChange sEmboarFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_EMBOAR_MEGA, ITEM_EMBOARITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_EMBOAR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TEPIG #if P_FAMILY_DRILBUR -static const struct FormChange sExcadrillFormChangeTable[] = { +static const struct FormChange sExcadrillFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_EXCADRILL_MEGA, ITEM_EXCADRITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_EXCADRILL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DRILBUR #if P_FAMILY_AUDINO -static const struct FormChange sAudinoFormChangeTable[] = { +static const struct FormChange sAudinoFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AUDINO_MEGA, ITEM_AUDINITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_AUDINO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_AUDINO #if P_FAMILY_VENIPEDE -static const struct FormChange sScolipedeFormChangeTable[] = { +static const struct FormChange sScolipedeFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCOLIPEDE_MEGA, ITEM_SCOLIPITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SCOLIPEDE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_VENIPEDE #if P_FAMILY_DARUMAKA -static const struct FormChange sDarmanitanFormChangeTable[] = { +static const struct FormChange sDarmanitanFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_STANDARD, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_ZEN, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_FAINT, SPECIES_DARMANITAN_STANDARD}, @@ -806,7 +947,8 @@ static const struct FormChange sDarmanitanFormChangeTable[] = { }; #if P_GALARIAN_FORMS -static const struct FormChange sDarmanitanGalarFormChangeTable[] = { +static const struct FormChange sDarmanitanGalarFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALAR_STANDARD, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALAR_ZEN, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_FAINT, SPECIES_DARMANITAN_GALAR_STANDARD}, @@ -817,10 +959,12 @@ static const struct FormChange sDarmanitanGalarFormChangeTable[] = { #endif //P_FAMILY_DARUMAKA #if P_FAMILY_SCRAGGY -static const struct FormChange sScraftyFormChangeTable[] = { +static const struct FormChange sScraftyFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCRAFTY_MEGA, ITEM_SCRAFTINITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SCRAFTY}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SCRAGGY @@ -831,30 +975,36 @@ static const struct FormChange sGarbodorFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GARBODOR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TRUBBISH #if P_FAMILY_TYNAMO -static const struct FormChange sEelektrossFormChangeTable[] = { +static const struct FormChange sEelektrossFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_EELEKTROSS_MEGA, ITEM_EELEKTROSSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_EELEKTROSS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TYNAMO #if P_FAMILY_LITWICK -static const struct FormChange sChandelureFormChangeTable[] = { +static const struct FormChange sChandelureFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHANDELURE_MEGA, ITEM_CHANDELURITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CHANDELURE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LITWICK #if P_FAMILY_TORNADUS -static const struct FormChange sTornadusFormChangeTable[] = { +static const struct FormChange sTornadusFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_TORNADUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, @@ -862,7 +1012,8 @@ static const struct FormChange sTornadusFormChangeTable[] = { #endif //P_FAMILY_TORNADUS #if P_FAMILY_THUNDURUS -static const struct FormChange sThundurusFormChangeTable[] = { +static const struct FormChange sThundurusFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_THUNDURUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, @@ -870,7 +1021,8 @@ static const struct FormChange sThundurusFormChangeTable[] = { #endif //P_FAMILY_THUNDURUS #if P_FAMILY_LANDORUS -static const struct FormChange sLandorusFormChangeTable[] = { +static const struct FormChange sLandorusFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_LANDORUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, @@ -886,7 +1038,8 @@ static const struct Fusion sKyuremFusionTable[] = { #endif //P_FAMILY_KYUREM #if P_FAMILY_KELDEO -static const struct FormChange sKeldeoFormChangeTable[] = { +static const struct FormChange sKeldeoFormChangeTable[] = +{ {FORM_CHANGE_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED}, {FORM_CHANGE_MOVE, SPECIES_KELDEO_ORDINARY, MOVE_SECRET_SWORD, WHEN_FORGOTTEN}, {FORM_CHANGE_TERMINATOR}, @@ -894,7 +1047,8 @@ static const struct FormChange sKeldeoFormChangeTable[] = { #endif //P_FAMILY_KELDEO #if P_FAMILY_MELOETTA -static const struct FormChange sMeloettaFormChangeTable[] = { +static const struct FormChange sMeloettaFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_AFTER_MOVE, SPECIES_MELOETTA_PIROUETTE, MOVE_RELIC_SONG}, {FORM_CHANGE_BATTLE_AFTER_MOVE, SPECIES_MELOETTA_ARIA, MOVE_RELIC_SONG}, {FORM_CHANGE_FAINT, SPECIES_MELOETTA_ARIA}, @@ -904,7 +1058,8 @@ static const struct FormChange sMeloettaFormChangeTable[] = { #endif //P_FAMILY_MELOETTA #if P_FAMILY_GENESECT -static const struct FormChange sGenesectFormChangeTable[] = { +static const struct FormChange sGenesectFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_DOUSE, ITEM_DOUSE_DRIVE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_SHOCK, ITEM_SHOCK_DRIVE}, @@ -915,32 +1070,39 @@ static const struct FormChange sGenesectFormChangeTable[] = { #endif //P_FAMILY_GENESECT #if P_FAMILY_CHESPIN -static const struct FormChange sChesnaughtFormChangeTable[] = { +static const struct FormChange sChesnaughtFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CHESNAUGHT_MEGA, ITEM_CHESNAUGHTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CHESNAUGHT}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CHESPIN #if P_FAMILY_FENNEKIN -static const struct FormChange sDelphoxFormChangeTable[] = { +static const struct FormChange sDelphoxFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DELPHOX_MEGA, ITEM_DELPHOXITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DELPHOX}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_FENNEKIN #if P_FAMILY_FROAKIE -static const struct FormChange sGreninjaFormChangeTable[] = { +static const struct FormChange sGreninjaFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GRENINJA_MEGA, ITEM_GRENINJITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GRENINJA}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sGreninjaBattleBondFormChangeTable[] = { +static const struct FormChange sGreninjaBattleBondFormChangeTable[] = +{ {FORM_CHANGE_FAINT, SPECIES_GRENINJA_BATTLE_BOND}, {FORM_CHANGE_END_BATTLE, SPECIES_GRENINJA_BATTLE_BOND}, {FORM_CHANGE_TERMINATOR}, @@ -948,25 +1110,30 @@ static const struct FormChange sGreninjaBattleBondFormChangeTable[] = { #endif //P_FAMILY_FROAKIE #if P_FAMILY_LITLEO -static const struct FormChange sPyroarFormChangeTable[] = { +static const struct FormChange sPyroarFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PYROAR_MEGA, ITEM_PYROARITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_PYROAR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_LITLEO #if P_FAMILY_FLABEBE -static const struct FormChange sFloetteEternalFormChangeTable[] = { +static const struct FormChange sFloetteEternalFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_FLOETTE_MEGA, ITEM_FLOETTITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_FLOETTE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_FLABEBE #if P_FAMILY_FURFROU -static const struct FormChange sFurfrouFormChangeTable[] = { +static const struct FormChange sFurfrouFormChangeTable[] = +{ {FORM_CHANGE_WITHDRAW, SPECIES_FURFROU_NATURAL}, {FORM_CHANGE_DAYS_PASSED, SPECIES_FURFROU_NATURAL, 5}, {FORM_CHANGE_TERMINATOR}, @@ -974,7 +1141,8 @@ static const struct FormChange sFurfrouFormChangeTable[] = { #endif //P_FAMILY_FURFROU #if P_FAMILY_HONEDGE -static const struct FormChange sAegislashFormChangeTable[] = { +static const struct FormChange sAegislashFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY, SPECIES_AEGISLASH_BLADE, DAMAGE_CATEGORY_PHYSICAL, ABILITY_STANCE_CHANGE}, {FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY, SPECIES_AEGISLASH_BLADE, DAMAGE_CATEGORY_SPECIAL, ABILITY_STANCE_CHANGE}, {FORM_CHANGE_BATTLE_BEFORE_MOVE, SPECIES_AEGISLASH_SHIELD, MOVE_KINGS_SHIELD, ABILITY_STANCE_CHANGE}, @@ -986,43 +1154,52 @@ static const struct FormChange sAegislashFormChangeTable[] = { #endif //P_FAMILY_HONEDGE #if P_FAMILY_INKAY -static const struct FormChange sMalamarFormChangeTable[] = { +static const struct FormChange sMalamarFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MALAMAR_MEGA, ITEM_MALAMARITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MALAMAR}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_INKAY #if P_FAMILY_BINACLE -static const struct FormChange sBarbaracleFormChangeTable[] = { +static const struct FormChange sBarbaracleFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BARBARACLE_MEGA, ITEM_BARBARACITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_BARBARACLE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BINACLE #if P_FAMILY_SKRELP -static const struct FormChange sDragalgeFormChangeTable[] = { +static const struct FormChange sDragalgeFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DRAGALGE_MEGA, ITEM_DRAGALGITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DRAGALGE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SKRELP #if P_FAMILY_HAWLUCHA -static const struct FormChange sHawluchaFormChangeTable[] = { +static const struct FormChange sHawluchaFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HAWLUCHA_MEGA, ITEM_HAWLUCHANITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_HAWLUCHA}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_HAWLUCHA #if P_FAMILY_XERNEAS -static const struct FormChange sXerneasFormChangeTable[] = { +static const struct FormChange sXerneasFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_XERNEAS_ACTIVE}, {FORM_CHANGE_END_BATTLE, SPECIES_XERNEAS_NEUTRAL}, {FORM_CHANGE_TERMINATOR}, @@ -1030,33 +1207,38 @@ static const struct FormChange sXerneasFormChangeTable[] = { #endif //P_FAMILY_XERNEAS #if P_FAMILY_ZYGARDE -static const struct FormChange sZygarde50AuraBreakFormChangeTable[] = { +static const struct FormChange sZygarde50AuraBreakFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK, ITEM_ZYGARDE_CUBE, 0}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sZygarde10AuraBreakFormChangeTable[] = { +static const struct FormChange sZygarde10AuraBreakFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50, ITEM_ZYGARDE_CUBE, 0}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 1}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sZygarde50PowerConstructFormChangeTable[] = { +static const struct FormChange sZygarde50PowerConstructFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50, ITEM_ZYGARDE_CUBE, 1}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sZygarde10PowerConstructFormChangeTable[] = { +static const struct FormChange sZygarde10PowerConstructFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0}, {FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_AURA_BREAK, ITEM_ZYGARDE_CUBE, 1}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_ZYGARDE_COMPLETE, ABILITY_POWER_CONSTRUCT, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sZygardeCompleteFormChangeTable[] = { +static const struct FormChange sZygardeCompleteFormChangeTable[] = +{ {FORM_CHANGE_FAINT}, {FORM_CHANGE_END_BATTLE}, #if P_GEN_9_MEGA_EVOLUTIONS @@ -1067,16 +1249,19 @@ static const struct FormChange sZygardeCompleteFormChangeTable[] = { #endif //P_FAMILY_ZYGARDE #if P_FAMILY_DIANCIE -static const struct FormChange sDiancieFormChangeTable[] = { +static const struct FormChange sDiancieFormChangeTable[] = +{ #if P_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DIANCIE_MEGA, ITEM_DIANCITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DIANCIE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DIANCIE #if P_FAMILY_HOOPA -static const struct FormChange sHoopaFormChangeTable[] = { +static const struct FormChange sHoopaFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_HOOPA_UNBOUND, ITEM_PRISON_BOTTLE, SPECIES_HOOPA_CONFINED}, {FORM_CHANGE_WITHDRAW, SPECIES_HOOPA_CONFINED}, {FORM_CHANGE_DAYS_PASSED, SPECIES_HOOPA_CONFINED, 3}, @@ -1085,7 +1270,8 @@ static const struct FormChange sHoopaFormChangeTable[] = { #endif //P_FAMILY_HOOPA #if P_FAMILY_ORICORIO -static const struct FormChange sOricorioFormChangeTable[] = { +static const struct FormChange sOricorioFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_BAILE, ITEM_RED_NECTAR}, {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_POM_POM, ITEM_YELLOW_NECTAR}, {FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_PAU, ITEM_PINK_NECTAR}, @@ -1095,7 +1281,8 @@ static const struct FormChange sOricorioFormChangeTable[] = { #endif //P_FAMILY_ORICORIO #if P_FAMILY_WISHIWASHI -static const struct FormChange sWishiwashiFormChangeTable[] = { +static const struct FormChange sWishiwashiFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SCHOOL, ABILITY_SCHOOLING, HP_HIGHER_THAN, 25}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_WISHIWASHI_SOLO, ABILITY_SCHOOLING, HP_LOWER_EQ_THAN, 25}, {FORM_CHANGE_BATTLE_SWITCH, SPECIES_WISHIWASHI_SOLO}, @@ -1106,7 +1293,8 @@ static const struct FormChange sWishiwashiFormChangeTable[] = { #endif //P_FAMILY_WISHIWASHI #if P_FAMILY_TYPE_NULL -static const struct FormChange sSilvallyFormChangeTable[] = { +static const struct FormChange sSilvallyFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_NORMAL, ITEM_NONE, ABILITY_RKS_SYSTEM}, {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FIGHTING, ITEM_FIGHTING_MEMORY, ABILITY_RKS_SYSTEM}, {FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FLYING, ITEM_FLYING_MEMORY, ABILITY_RKS_SYSTEM}, @@ -1130,7 +1318,8 @@ static const struct FormChange sSilvallyFormChangeTable[] = { #endif //P_FAMILY_TYPE_NULL #if P_FAMILY_MINIOR -static const struct FormChange sMiniorRedFormChangeTable[] = { +static const struct FormChange sMiniorRedFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_RED}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_RED, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_RED, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1139,7 +1328,8 @@ static const struct FormChange sMiniorRedFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_RED}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMiniorBlueFormChangeTable[] = { +static const struct FormChange sMiniorBlueFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_BLUE}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_BLUE, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_BLUE, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1148,7 +1338,8 @@ static const struct FormChange sMiniorBlueFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_BLUE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMiniorGreenFormChangeTable[] = { +static const struct FormChange sMiniorGreenFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_GREEN}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_GREEN, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_GREEN, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1157,7 +1348,8 @@ static const struct FormChange sMiniorGreenFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_GREEN}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMiniorIndigoFormChangeTable[] = { +static const struct FormChange sMiniorIndigoFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_INDIGO}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_INDIGO, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_INDIGO, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1166,7 +1358,8 @@ static const struct FormChange sMiniorIndigoFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_INDIGO}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMiniorOrangeFormChangeTable[] = { +static const struct FormChange sMiniorOrangeFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_ORANGE}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_ORANGE, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_ORANGE, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1175,7 +1368,8 @@ static const struct FormChange sMiniorOrangeFormChangeTable[] = { {FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_ORANGE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMiniorVioletFormChangeTable[] = { +static const struct FormChange sMiniorVioletFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_MINIOR_CORE_VIOLET}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_VIOLET, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_VIOLET, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50}, @@ -1196,13 +1390,15 @@ static const struct FormChange sMiniorYellowFormChangeTable[] = { #endif //P_FAMILY_MINIOR #if P_FAMILY_MIMIKYU -static const struct FormChange sMimikyuFormChangeTable[] = { +static const struct FormChange sMimikyuFormChangeTable[] = +{ {FORM_CHANGE_FAINT, SPECIES_MIMIKYU_DISGUISED}, {FORM_CHANGE_END_BATTLE, SPECIES_MIMIKYU_DISGUISED}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sMimikyuTotemFormChangeTable[] = { +static const struct FormChange sMimikyuTotemFormChangeTable[] = +{ {FORM_CHANGE_FAINT, SPECIES_MIMIKYU_TOTEM_DISGUISED}, {FORM_CHANGE_END_BATTLE, SPECIES_MIMIKYU_TOTEM_DISGUISED}, {FORM_CHANGE_TERMINATOR}, @@ -1210,10 +1406,12 @@ static const struct FormChange sMimikyuTotemFormChangeTable[] = { #endif //P_FAMILY_MIMIKYU #if P_FAMILY_DRAMPA -static const struct FormChange sDrampaFormChangeTable[] = { +static const struct FormChange sDrampaFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DRAMPA_MEGA, ITEM_DRAMPANITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DRAMPA}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DRAMPA @@ -1225,16 +1423,25 @@ static const struct Fusion sNecrozmaFusionTable[] = { {FUSION_TERMINATOR}, }; -static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = { +static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = +{ #if P_ULTRA_BURST_FORMS {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_NECROZMA_DUSK_MANE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = { +static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = +{ #if P_ULTRA_BURST_FORMS {FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_NECROZMA_DAWN_WINGS}, + {FORM_CHANGE_TERMINATOR}, +}; +static const struct FormChange sNecrozmaUltraFormChangeTable[] = +{ + {FORM_CHANGE_END_BATTLE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_NECROZMA @@ -1245,6 +1452,7 @@ static const struct FormChange sMelmetalFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MELMETAL_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_MELMETAL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MELTAN @@ -1255,6 +1463,7 @@ static const struct FormChange sRillaboomFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_RILLABOOM_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_RILLABOOM}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_GROOKEY @@ -1265,6 +1474,7 @@ static const struct FormChange sCinderaceFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CINDERACE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CINDERACE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SCORBUNNY @@ -1275,6 +1485,7 @@ static const struct FormChange sInteleonFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_INTELEON_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_INTELEON}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SOBBLE @@ -1285,6 +1496,7 @@ static const struct FormChange sCorviknightFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CORVIKNIGHT_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CORVIKNIGHT}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ROOKIDEE @@ -1295,6 +1507,7 @@ static const struct FormChange sOrbeetleFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ORBEETLE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ORBEETLE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_BLIPBUG @@ -1305,6 +1518,7 @@ static const struct FormChange sDrednawFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DREDNAW_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DREDNAW}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CHEWTLE @@ -1315,6 +1529,7 @@ static const struct FormChange sCoalossalFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COALOSSAL_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_COALOSSAL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_ROLYCOLY @@ -1325,6 +1540,7 @@ static const struct FormChange sFlappleFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_FLAPPLE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_FLAPPLE}, {FORM_CHANGE_TERMINATOR}, }; @@ -1333,6 +1549,7 @@ static const struct FormChange sAppletunFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_APPLETUN_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_APPLETUN}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_APPLIN @@ -1343,12 +1560,14 @@ static const struct FormChange sSandacondaFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SANDACONDA_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_SANDACONDA}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SILICOBRA #if P_FAMILY_CRAMORANT -static const struct FormChange sCramorantFormChangeTable[] = { +static const struct FormChange sCramorantFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GULPING, ABILITY_GULP_MISSILE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_CRAMORANT_GORGING, ABILITY_GULP_MISSILE, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_HIT_BY_MOVE, SPECIES_CRAMORANT, ABILITY_GULP_MISSILE}, @@ -1365,6 +1584,7 @@ static const struct FormChange sToxtricityAmpedFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_AMPED_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_TOXTRICITY_AMPED}, {FORM_CHANGE_TERMINATOR}, }; @@ -1373,6 +1593,7 @@ static const struct FormChange sToxtricityLowKeyFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_LOW_KEY_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_TOXTRICITY_LOW_KEY}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_TOXEL @@ -1383,6 +1604,7 @@ static const struct FormChange sCentiskorchFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CENTISKORCH_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_CENTISKORCH}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_SIZZLIPEDE @@ -1393,6 +1615,7 @@ static const struct FormChange sHattereneFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_HATTERENE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_HATTERENE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_HATENNA @@ -1403,6 +1626,7 @@ static const struct FormChange sGrimmsnarlFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GRIMMSNARL_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_GRIMMSNARL}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_IMPIDIMP @@ -1413,21 +1637,25 @@ static const struct FormChange sAlcremieFormChangeTable[] = #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ALCREMIE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_ALCREMIE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_MILCERY #if P_FAMILY_FALINKS -static const struct FormChange sFalinksFormChangeTable[] = { +static const struct FormChange sFalinksFormChangeTable[] = +{ #if P_GEN_9_MEGA_EVOLUTIONS {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_FALINKS_MEGA, ITEM_FALINKSITE}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_FALINKS}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_FALINKS #if P_FAMILY_EISCUE -static const struct FormChange sEiscueFormChangeTable[] = { +static const struct FormChange sEiscueFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_WEATHER, SPECIES_EISCUE_ICE, B_WEATHER_HAIL | B_WEATHER_SNOW, ABILITY_ICE_FACE}, {FORM_CHANGE_FAINT, SPECIES_EISCUE_ICE}, {FORM_CHANGE_END_BATTLE, SPECIES_EISCUE_ICE}, @@ -1436,7 +1664,8 @@ static const struct FormChange sEiscueFormChangeTable[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_MORPEKO -static const struct FormChange sMorpekoFormChangeTable[] = { +static const struct FormChange sMorpekoFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_HANGRY, ABILITY_HUNGER_SWITCH}, {FORM_CHANGE_BATTLE_TURN_END, SPECIES_MORPEKO_FULL_BELLY, ABILITY_HUNGER_SWITCH}, {FORM_CHANGE_BATTLE_SWITCH, SPECIES_MORPEKO_FULL_BELLY}, @@ -1447,25 +1676,30 @@ static const struct FormChange sMorpekoFormChangeTable[] = { #endif //P_FAMILY_MORPEKO #if P_FAMILY_CUFANT -static const struct FormChange sCopperajahFormChangeTable[] = { +static const struct FormChange sCopperajahFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COPPERAJAH_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_COPPERAJAH}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_CUFANT #if P_FAMILY_DURALUDON -static const struct FormChange sDuraludonFormChangeTable[] = { +static const struct FormChange sDuraludonFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DURALUDON_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_DURALUDON}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_DURALUDON #if P_FAMILY_ZACIAN -static const struct FormChange sZacianFormChangeTable[] = { +static const struct FormChange sZacianFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZACIAN_CROWNED, ITEM_RUSTED_SWORD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BLADE}, {FORM_CHANGE_END_BATTLE, SPECIES_ZACIAN_HERO, ITEM_RUSTED_SWORD, MOVE_BEHEMOTH_BLADE, MOVE_IRON_HEAD}, {FORM_CHANGE_TERMINATOR}, @@ -1473,7 +1707,8 @@ static const struct FormChange sZacianFormChangeTable[] = { #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA -static const struct FormChange sZamazentaFormChangeTable[] = { +static const struct FormChange sZamazentaFormChangeTable[] = +{ {FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZAMAZENTA_CROWNED, ITEM_RUSTED_SHIELD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BASH}, {FORM_CHANGE_END_BATTLE, SPECIES_ZAMAZENTA_HERO, ITEM_RUSTED_SHIELD, MOVE_BEHEMOTH_BASH, MOVE_IRON_HEAD}, {FORM_CHANGE_TERMINATOR}, @@ -1481,17 +1716,21 @@ static const struct FormChange sZamazentaFormChangeTable[] = { #endif //P_FAMILY_ZAMAZENTA #if P_FAMILY_KUBFU -static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] = { +static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_SINGLE_STRIKE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_URSHIFU_SINGLE_STRIKE}, {FORM_CHANGE_TERMINATOR}, }; -static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] = { +static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] = +{ #if P_GIGANTAMAX_FORMS {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_RAPID_STRIKE_GMAX}, #endif + {FORM_CHANGE_END_BATTLE, SPECIES_URSHIFU_RAPID_STRIKE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_KUBFU @@ -1505,7 +1744,8 @@ static const struct Fusion sCalyrexFusionTable[] = { #endif //P_FAMILY_CALYREX #if P_FAMILY_ENAMORUS -static const struct FormChange sEnamorusFormChangeTable[] = { +static const struct FormChange sEnamorusFormChangeTable[] = +{ {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_INCARNATE, ITEM_REVEAL_GLASS}, {FORM_CHANGE_ITEM_USE, SPECIES_ENAMORUS_THERIAN, ITEM_REVEAL_GLASS}, {FORM_CHANGE_TERMINATOR}, @@ -1516,12 +1756,14 @@ static const struct FormChange sEnamorusFormChangeTable[] = { static const struct FormChange sPalafinZeroFormChangeTable[] = { {FORM_CHANGE_BATTLE_SWITCH, SPECIES_PALAFIN_HERO}, + {FORM_CHANGE_END_BATTLE, SPECIES_PALAFIN_ZERO}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_FINIZEN #if P_FAMILY_OGERPON -static const struct FormChange sOgerponFormChangeTable[] = { +static const struct FormChange sOgerponFormChangeTable[] = +{ {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_TEAL, ITEM_NONE}, {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_WELLSPRING, ITEM_WELLSPRING_MASK}, {FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_HEARTHFLAME, ITEM_HEARTHFLAME_MASK}, @@ -1532,12 +1774,14 @@ static const struct FormChange sOgerponFormChangeTable[] = { {FORM_CHANGE_BATTLE_TERASTALLIZATION, SPECIES_OGERPON_HEARTHFLAME_TERA, TYPE_FIRE}, {FORM_CHANGE_BATTLE_TERASTALLIZATION, SPECIES_OGERPON_CORNERSTONE_TERA, TYPE_ROCK}, #endif + {FORM_CHANGE_END_BATTLE}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_OGERPON #if P_FAMILY_TERAPAGOS -static const struct FormChange sTerapagosFormChangeTable[] = { +static const struct FormChange sTerapagosFormChangeTable[] = +{ {FORM_CHANGE_BATTLE_SWITCH, SPECIES_TERAPAGOS_TERASTAL, ABILITY_TERA_SHIFT}, #if P_TERA_FORMS {FORM_CHANGE_BATTLE_TERASTALLIZATION, SPECIES_TERAPAGOS_STELLAR, TYPE_STELLAR}, diff --git a/src/data/pokemon/species_info/gen_7_families.h b/src/data/pokemon/species_info/gen_7_families.h index 26637ad423..f26877c272 100644 --- a/src/data/pokemon/species_info/gen_7_families.h +++ b/src/data/pokemon/species_info/gen_7_families.h @@ -6932,6 +6932,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .levelUpLearnset = sNecrozmaLevelUpLearnset, .teachableLearnset = sNecrozmaTeachableLearnset, .formSpeciesIdTable = sNecrozmaFormSpeciesIdTable, + .formChangeTable = sNecrozmaUltraFormChangeTable, }, #endif //P_ULTRA_BURST_FORMS #endif //P_FUSION_FORMS diff --git a/src/data/pokemon/species_info/gen_8_families.h b/src/data/pokemon/species_info/gen_8_families.h index bc73d7bcec..0824cab1a0 100644 --- a/src/data/pokemon/species_info/gen_8_families.h +++ b/src/data/pokemon/species_info/gen_8_families.h @@ -7390,6 +7390,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .levelUpLearnset = sUrshifuSingleStrikeLevelUpLearnset, .teachableLearnset = sUrshifuSingleStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, + .formChangeTable = sUrshifuSingleStrikeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS @@ -7517,6 +7518,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .levelUpLearnset = sUrshifuRapidStrikeLevelUpLearnset, .teachableLearnset = sUrshifuRapidStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, + .formChangeTable = sUrshifuRapidStrikeFormChangeTable, }, #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU diff --git a/src/pokemon.c b/src/pokemon.c index 9567c22636..90273d1709 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -7154,10 +7154,19 @@ bool32 TryFormChange(u32 monId, enum BattleSide side, enum FormChanges method) u32 currentSpecies = GetMonData(&party[monId], MON_DATA_SPECIES); u32 targetSpecies = GetFormChangeTargetSpecies(&party[monId], method, 0); - if (targetSpecies == currentSpecies && gBattleStruct != NULL && gBattleStruct->partyState[side][monId].changedSpecies != SPECIES_NONE) + // If the battle ends, and there's not a specified species to change back to,, + // use the species at the start of the battle. + if (targetSpecies == SPECIES_NONE + && gBattleStruct != NULL + && gBattleStruct->partyState[side][monId].changedSpecies != SPECIES_NONE + // This is added to prevent FORM_CHANGE_END_BATTLE_ENVIRONMENT from omitting move changes + // at the end of the battle, as it was being counting as a successful form change. + && method == FORM_CHANGE_END_BATTLE) + { targetSpecies = gBattleStruct->partyState[side][monId].changedSpecies; + } - if (targetSpecies != currentSpecies) + if (targetSpecies != currentSpecies && targetSpecies != SPECIES_NONE) { TryToSetBattleFormChangeMoves(&party[monId], method); SetMonData(&party[monId], MON_DATA_SPECIES, &targetSpecies); @@ -7367,7 +7376,7 @@ void UpdateDaysPassedSinceFormChange(u16 days) { u32 targetSpecies = GetFormChangeTargetSpecies(mon, FORM_CHANGE_DAYS_PASSED, 0); - if (targetSpecies != currentSpecies) + if (targetSpecies != currentSpecies && targetSpecies != SPECIES_NONE) { SetMonData(mon, MON_DATA_SPECIES, &targetSpecies); CalculateMonStats(mon); diff --git a/test/battle/form_change/end_battle.c b/test/battle/form_change/end_battle.c index 9de52a83f2..d4f29e4315 100644 --- a/test/battle/form_change/end_battle.c +++ b/test/battle/form_change/end_battle.c @@ -90,7 +90,6 @@ SINGLE_BATTLE_TEST("Palafin returns to Zero form upon battle end") SINGLE_BATTLE_TEST("Shaymin retains Land form if it was frozen or frostbitten in battle") { - KNOWN_FAILING; // changedSpecies is forcing the return to Sky Form GIVEN { ASSUME(MoveHasAdditionalEffect(MOVE_POWDER_SNOW, MOVE_EFFECT_FREEZE_OR_FROSTBITE)); PLAYER(SPECIES_SHAYMIN_SKY); diff --git a/test/species.c b/test/species.c index c4d91e60e5..8a089af9f0 100644 --- a/test/species.c +++ b/test/species.c @@ -59,6 +59,23 @@ TEST("Form change tables contain only forms in the form species ID table") } } +TEST("Forms have the appropriate species form changes") +{ + u32 i; + u32 species = SPECIES_NONE; + + for (i = 0; i < NUM_SPECIES; i++) + { + if (gSpeciesInfo[i].isMegaEvolution + || gSpeciesInfo[i].isGigantamax + || gSpeciesInfo[i].isUltraBurst) + { + PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].speciesName) { species = i; } + } + } + EXPECT(DoesSpeciesHaveFormChangeMethod(species, FORM_CHANGE_END_BATTLE)); + } + TEST("Form change targets have the appropriate species flags") { u32 i;