Co-authored-by: Martin Griffin <martinrgriffin@gmail.com> Co-authored-by: Eduardo Quezada D'Ottone <eduardo602002@gmail.com>
848 lines
37 KiB
C
848 lines
37 KiB
C
static const struct FormChange sVenusaurFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_VENUSAUR_MEGA, ITEM_VENUSAURITE},
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_VENUSAUR_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCharizardFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CHARIZARD_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sBlastoiseFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLASTOISE_MEGA, ITEM_BLASTOISINITE},
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BLASTOISE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sBeedrillFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BEEDRILL_MEGA, ITEM_BEEDRILLITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sPidgeotFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PIDGEOT_MEGA, ITEM_PIDGEOTITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAlakazamFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALAKAZAM_MEGA, ITEM_ALAKAZITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSlowbroFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SLOWBRO_MEGA, ITEM_SLOWBRONITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
static const struct FormChange sKangaskhanFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_KANGASKHAN_MEGA, ITEM_KANGASKHANITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sPinsirFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_PINSIR_MEGA, ITEM_PINSIRITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGyaradosFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GYARADOS_MEGA, ITEM_GYARADOSITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAerodactylFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AERODACTYL_MEGA, ITEM_AERODACTYLITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMewtwoFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAmpharosFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AMPHAROS_MEGA, ITEM_AMPHAROSITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSteelixFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_STEELIX_MEGA, ITEM_STEELIXITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sScizorFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCIZOR_MEGA, ITEM_SCIZORITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sHeracrossFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HERACROSS_MEGA, ITEM_HERACRONITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sHoundoomFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_HOUNDOOM_MEGA, ITEM_HOUNDOOMINITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sTyranitarFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_TYRANITAR_MEGA, ITEM_TYRANITARITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSceptileFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SCEPTILE_MEGA, ITEM_SCEPTILITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sBlazikenFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BLAZIKEN_MEGA, ITEM_BLAZIKENITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSwampertFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SWAMPERT_MEGA, ITEM_SWAMPERTITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSableyeFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SABLEYE_MEGA, ITEM_SABLENITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSharpedoFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SHARPEDO_MEGA, ITEM_SHARPEDONITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sManectricFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MANECTRIC_MEGA, ITEM_MANECTITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCameruptFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_CAMERUPT_MEGA, ITEM_CAMERUPTITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGlalieFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GLALIE_MEGA, ITEM_GLALITITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMawileFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MAWILE_MEGA, ITEM_MAWILITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMedichamFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_MEDICHAM_MEGA, ITEM_MEDICHAMITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAltariaFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ALTARIA_MEGA, ITEM_ALTARIANITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAbsolFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABSOL_MEGA, ITEM_ABSOLITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCastformFormChangeTable[] = {
|
|
#if B_WEATHER_FORMS >= GEN_5
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_SUNNY, B_WEATHER_SUN, ABILITY_FORECAST},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_RAINY, B_WEATHER_RAIN, ABILITY_FORECAST},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_SNOWY, B_WEATHER_HAIL | B_WEATHER_SNOW, ABILITY_FORECAST},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_NORMAL, ~(B_WEATHER_SUN | B_WEATHER_RAIN | B_WEATHER_HAIL | B_WEATHER_SNOW), ABILITY_FORECAST},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_NORMAL, B_WEATHER_NONE, ABILITY_FORECAST},
|
|
#else
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_SUNNY, B_WEATHER_SUN},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_RAINY, B_WEATHER_RAIN},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_SNOWY, B_WEATHER_HAIL | B_WEATHER_SNOW},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_NORMAL, ~(B_WEATHER_SUN | B_WEATHER_RAIN | B_WEATHER_HAIL | B_WEATHER_SNOW)},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CASTFORM_NORMAL, B_WEATHER_NONE},
|
|
#endif
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_CASTFORM_NORMAL},
|
|
{FORM_CHANGE_FAINT, SPECIES_CASTFORM_NORMAL},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_CASTFORM_NORMAL},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sBanetteFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_BANETTE_MEGA, ITEM_BANETTITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAggronFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AGGRON_MEGA, ITEM_AGGRONITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGardevoirFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARDEVOIR_MEGA, ITEM_GARDEVOIRITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSalamenceFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_SALAMENCE_MEGA, ITEM_SALAMENCITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMetagrossFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_METAGROSS_MEGA, ITEM_METAGROSSITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sLatiasFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIAS_MEGA, ITEM_LATIASITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sLatiosFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LATIOS_MEGA, ITEM_LATIOSITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sKyogreFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_KYOGRE_PRIMAL, ITEM_BLUE_ORB},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGroudonFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_PRIMAL_REVERSION, SPECIES_GROUDON_PRIMAL, ITEM_RED_ORB},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sRayquazaFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_MOVE, SPECIES_RAYQUAZA_MEGA, MOVE_DRAGON_ASCENT},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
#if P_GEN_4_POKEMON == TRUE
|
|
static const struct FormChange sBurmyFormChangeTable[] = {
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_GRASS},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_LONG_GRASS},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_POND},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_MOUNTAIN},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_PLANT_CLOAK, BATTLE_TERRAIN_PLAIN},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY_CLOAK, BATTLE_TERRAIN_CAVE},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_SANDY_CLOAK, BATTLE_TERRAIN_SAND},
|
|
{FORM_CHANGE_END_BATTLE_TERRAIN, SPECIES_BURMY_TRASH_CLOAK, BATTLE_TERRAIN_BUILDING},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCherrimFormChangeTable[] = {
|
|
#if B_WEATHER_FORMS >= GEN_5
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_SUNSHINE, B_WEATHER_SUN, ABILITY_FLOWER_GIFT},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_OVERCAST, ~B_WEATHER_SUN, ABILITY_FLOWER_GIFT},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_OVERCAST, B_WEATHER_NONE, ABILITY_FLOWER_GIFT},
|
|
#else
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_SUNSHINE, B_WEATHER_SUN},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_OVERCAST, ~B_WEATHER_SUN},
|
|
{FORM_CHANGE_BATTLE_WEATHER, SPECIES_CHERRIM_OVERCAST, B_WEATHER_NONE},
|
|
#endif
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_CHERRIM_OVERCAST},
|
|
{FORM_CHANGE_FAINT, SPECIES_CHERRIM_OVERCAST},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_CHERRIM_OVERCAST},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sLopunnyFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LOPUNNY_MEGA, ITEM_LOPUNNITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGarchompFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GARCHOMP_MEGA, ITEM_GARCHOMPITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sLucarioFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_LUCARIO_MEGA, ITEM_LUCARIONITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAbomasnowFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_ABOMASNOW_MEGA, ITEM_ABOMASITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGalladeFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GALLADE_MEGA, ITEM_GALLADITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FROST, ITEM_ROTOM_CATALOG, 3},
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_FAN, ITEM_ROTOM_CATALOG, 4},
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ROTOM_MOW, ITEM_ROTOM_CATALOG, 5},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
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},
|
|
#endif
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_CORE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sShayminFormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_USE, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY},
|
|
// {FORM_CHANGE_WITHDRAW, SPECIES_SHAYMIN_LAND},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FLYING, ITEM_SKY_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FLYING, ITEM_FLYINIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_POISON, ITEM_TOXIC_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_POISON, ITEM_POISONIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ROCK, ITEM_STONE_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ROCK, ITEM_ROCKIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GROUND, ITEM_EARTH_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GROUND, ITEM_GROUNDIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_BUG, ITEM_INSECT_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_BUG, ITEM_BUGINIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GHOST, ITEM_SPOOKY_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GHOST, ITEM_GHOSTIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_STEEL, ITEM_IRON_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_STEEL, ITEM_STEELIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIRE, ITEM_FLAME_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FIRE, ITEM_FIRIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_WATER, ITEM_SPLASH_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_WATER, ITEM_WATERIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GRASS, ITEM_MEADOW_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_GRASS, ITEM_GRASSIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ELECTRIC, ITEM_ZAP_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ELECTRIC, ITEM_ELECTRIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_PSYCHIC, ITEM_MIND_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_PSYCHIC, ITEM_PSYCHIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ICE, ITEM_ICICLE_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_ICE, ITEM_ICIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DRAGON, ITEM_DRACO_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DRAGON, ITEM_DRAGONIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DARK, ITEM_DREAD_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_DARK, ITEM_DARKINIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FAIRY, ITEM_PIXIE_PLATE, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_ARCEUS_FAIRY, ITEM_FAIRIUM_Z, ABILITY_MULTITYPE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
#endif
|
|
|
|
#if P_GEN_5_POKEMON == TRUE
|
|
static const struct FormChange sAudinoFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_AUDINO_MEGA, ITEM_AUDINITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sDarmanitanFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50},
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_ZEN_MODE, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50},
|
|
{FORM_CHANGE_FAINT, SPECIES_DARMANITAN_STANDARD_MODE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_DARMANITAN_STANDARD_MODE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sDarmanitanGalarianFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50},
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALARIAN_ZEN_MODE, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50},
|
|
{FORM_CHANGE_FAINT, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_DARMANITAN_GALARIAN_STANDARD_MODE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMeloettaFormChangeTable[] = {
|
|
{FORM_CHANGE_FAINT, SPECIES_MELOETTA_ARIA},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MELOETTA_ARIA},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
static const struct FormChange sGenesectFormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT, ITEM_NONE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_DOUSE_DRIVE, ITEM_DOUSE_DRIVE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_SHOCK_DRIVE, ITEM_SHOCK_DRIVE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_BURN_DRIVE, ITEM_BURN_DRIVE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_GENESECT_CHILL_DRIVE, ITEM_CHILL_DRIVE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
#endif
|
|
|
|
#if P_GEN_6_POKEMON == TRUE
|
|
static const struct FormChange sGreninjaBattleBondFormChangeTable[] = {
|
|
{FORM_CHANGE_FAINT, SPECIES_GRENINJA_BATTLE_BOND},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_GRENINJA_BATTLE_BOND},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAegislashFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_AEGISLASH_SHIELD},
|
|
{FORM_CHANGE_FAINT, SPECIES_AEGISLASH_SHIELD},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_AEGISLASH_SHIELD},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sXerneasFormChangeTable[] = {
|
|
{FORM_CHANGE_BEGIN_BATTLE, SPECIES_XERNEAS_ACTIVE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_XERNEAS_NEUTRAL},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sZygardeFormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10, 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 sZygarde10FormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE, 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 sZygardePowerConstructFormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0},
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE, 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[] = {
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_50_POWER_CONSTRUCT, ITEM_ZYGARDE_CUBE, 0},
|
|
{FORM_CHANGE_ITEM_USE_MULTICHOICE, SPECIES_ZYGARDE_10, 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[] = {
|
|
{FORM_CHANGE_FAINT},
|
|
{FORM_CHANGE_END_BATTLE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sDiancieFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_DIANCIE_MEGA, ITEM_DIANCITE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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_TERMINATOR},
|
|
};
|
|
#endif
|
|
|
|
#if P_GEN_7_POKEMON == TRUE
|
|
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},
|
|
{FORM_CHANGE_ITEM_USE, SPECIES_ORICORIO_SENSU, ITEM_PURPLE_NECTAR},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
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},
|
|
{FORM_CHANGE_FAINT, SPECIES_WISHIWASHI_SOLO},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_WISHIWASHI_SOLO},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_POISON, ITEM_POISON_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GROUND, ITEM_GROUND_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ROCK, ITEM_ROCK_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_BUG, ITEM_BUG_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GHOST, ITEM_GHOST_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_STEEL, ITEM_STEEL_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FIRE, ITEM_FIRE_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_WATER, ITEM_WATER_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_GRASS, ITEM_GRASS_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ELECTRIC, ITEM_ELECTRIC_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_PSYCHIC, ITEM_PSYCHIC_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_ICE, ITEM_ICE_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_DRAGON, ITEM_DRAGON_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_DARK, ITEM_DARK_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_SILVALLY_FAIRY, ITEM_FAIRY_MEMORY, ABILITY_RKS_SYSTEM},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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 sMiniorRedFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_RED},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_RED},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_RED},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorBlueFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_BLUE},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_BLUE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_BLUE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorGreenFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_GREEN},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_GREEN},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_GREEN},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorIndigoFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_INDIGO},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_INDIGO},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_INDIGO},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorOrangeFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_ORANGE},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_ORANGE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_ORANGE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorVioletFormChangeTable[] = {
|
|
{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},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_VIOLET},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_VIOLET},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_VIOLET},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sMiniorYellowFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_METEOR_YELLOW, ABILITY_SHIELDS_DOWN, HP_HIGHER_THAN, 50},
|
|
{FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_MINIOR_CORE_YELLOW, ABILITY_SHIELDS_DOWN, HP_LOWER_EQ_THAN, 50},
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_MINIOR_CORE_YELLOW},
|
|
{FORM_CHANGE_FAINT, SPECIES_MINIOR_CORE_YELLOW},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MINIOR_CORE_YELLOW},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sNecrozmaDuskManeFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sNecrozmaDawnWingsFormChangeTable[] = {
|
|
{FORM_CHANGE_BATTLE_ULTRA_BURST, SPECIES_NECROZMA_ULTRA, ITEM_ULTRANECROZIUM_Z},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
#endif
|
|
|
|
#if P_GEN_8_POKEMON == TRUE
|
|
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_BATTLE_SWITCH, SPECIES_CRAMORANT},
|
|
{FORM_CHANGE_FAINT, SPECIES_CRAMORANT},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_CRAMORANT},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sEiscueFormChangeTable[] = {
|
|
{FORM_CHANGE_FAINT, SPECIES_EISCUE_ICE_FACE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_EISCUE_ICE_FACE},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
{FORM_CHANGE_FAINT, SPECIES_MORPEKO_FULL_BELLY},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_MORPEKO_FULL_BELLY},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sZacianFormChangeTable[] = {
|
|
{FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZACIAN_CROWNED_SWORD, ITEM_RUSTED_SWORD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BLADE},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_ZACIAN_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SWORD, MOVE_BEHEMOTH_BLADE, MOVE_IRON_HEAD},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sZamazentaFormChangeTable[] = {
|
|
{FORM_CHANGE_BEGIN_BATTLE, SPECIES_ZAMAZENTA_CROWNED_SHIELD, ITEM_RUSTED_SHIELD, MOVE_IRON_HEAD, MOVE_BEHEMOTH_BASH},
|
|
{FORM_CHANGE_END_BATTLE, SPECIES_ZAMAZENTA_HERO_OF_MANY_BATTLES, ITEM_RUSTED_SHIELD, MOVE_BEHEMOTH_BASH, MOVE_IRON_HEAD},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
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},
|
|
};
|
|
|
|
#endif
|
|
|
|
#if P_GEN_9_POKEMON == TRUE
|
|
static const struct FormChange sOgerponFormChangeTable[] = {
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_TEAL_MASK, ITEM_NONE},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_WELLSPRING_MASK, ITEM_WELLSPRING_MASK},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_HEARTHFLAME_MASK, ITEM_HEARTHFLAME_MASK},
|
|
{FORM_CHANGE_ITEM_HOLD, SPECIES_OGERPON_CORNERSTONE_MASK, ITEM_CORNERSTONE_MASK},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
#endif
|
|
|
|
static const struct FormChange sButterfreeFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_BUTTERFREE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sPikachuFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_PIKACHU_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMeowthFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MEOWTH_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sMachampFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MACHAMP_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sKinglerFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_KINGLER_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sLaprasFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_LAPRAS_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sEeveeFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_EEVEE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSnorlaxFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SNORLAX_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
#if P_GEN_5_POKEMON == TRUE
|
|
static const struct FormChange sGarbodorFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GARBODOR_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
#endif
|
|
#if P_GEN_7_POKEMON == TRUE
|
|
static const struct FormChange sMelmetalFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_MELMETAL_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
#endif
|
|
#if P_GEN_8_POKEMON == TRUE
|
|
static const struct FormChange sRillaboomFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_RILLABOOM_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCinderaceFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CINDERACE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sInteleonFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_INTELEON_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCorviknightFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CORVIKNIGHT_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sOrbeetleFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ORBEETLE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sDrednawFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DREDNAW_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCoalossalFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COALOSSAL_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sFlappleFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_FLAPPLE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAppletunFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_APPLETUN_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sSandacondaFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_SANDACONDA_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sToxtricityAmpedFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_AMPED_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sToxtricityLowKeyFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_TOXTRICITY_LOW_KEY_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
static const struct FormChange sCentiskorchFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_CENTISKORCH_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sHattereneFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_HATTERENE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sGrimmsnarlFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GRIMMSNARL_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sAlcremieFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_ALCREMIE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sCopperajahFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_COPPERAJAH_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sDuraludonFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_DURALUDON_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sUrshifuSingleStrikeFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_SINGLE_STRIKE_STYLE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sUrshifuRapidStrikeFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_URSHIFU_RAPID_STRIKE_STYLE_GIGANTAMAX},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
static const struct FormChange sPalafinZeroFormChangeTable[] =
|
|
{
|
|
{FORM_CHANGE_BATTLE_SWITCH, SPECIES_PALAFIN_HERO},
|
|
{FORM_CHANGE_TERMINATOR},
|
|
};
|
|
|
|
#endif
|
|
|
|
#undef WHEN_LEARNED
|
|
#undef WHEN_FORGOTTEN
|