2021-03-02 14:18:01 -06:00
|
|
|
/*
|
2022-02-26 12:58:49 -03:00
|
|
|
For cycling between forms with the same method and parameters but different target species (eg. Tornadus using the
|
|
|
|
Reveal Glass to change between its two forms), a separate form change table is required for each form.
|
|
|
|
Otherwise, only the last form change on the table will trigger.
|
|
|
|
|
2021-03-02 14:18:01 -06:00
|
|
|
FORM_ITEM_HOLD:
|
2021-10-02 11:55:21 -07:00
|
|
|
Form change activates when the item is given to or taken from the selected Pokémon.
|
2021-03-02 14:18:01 -06:00
|
|
|
param1 = item to hold
|
2021-10-02 11:55:21 -07:00
|
|
|
|
|
|
|
FORM_ITEM_USE:
|
|
|
|
Form change activates when the item is used on the selected Pokémon.
|
|
|
|
param1 = item to use
|
2021-03-02 14:18:01 -06:00
|
|
|
|
|
|
|
FORM_MOVE:
|
2021-10-02 11:55:21 -07:00
|
|
|
Form change activates when the Pokémon learns or forgets the move.
|
2021-03-02 14:18:01 -06:00
|
|
|
param1 = move to check for
|
2021-10-02 11:55:21 -07:00
|
|
|
param2 = WHEN_LEARNED if form change activates when move is forgotten
|
|
|
|
WHEN_FORGOTTEN if form change activates when move is learned
|
2021-03-02 14:18:01 -06:00
|
|
|
|
|
|
|
FORM_WITHDRAW:
|
2021-10-02 11:55:21 -07:00
|
|
|
Form change activates when the Pokémon is withdrawn from the PC or Daycare.
|
2021-03-02 14:18:01 -06:00
|
|
|
no parameters
|
2021-09-25 20:16:30 -03:00
|
|
|
|
2021-10-02 11:55:21 -07:00
|
|
|
FORM_ITEM_HOLD_ABILITY:
|
|
|
|
Form change activates when the item is used on the selected Pokémon that has
|
|
|
|
a particular ability.
|
|
|
|
param1 = item to use
|
|
|
|
param2 = ability to check for
|
|
|
|
|
|
|
|
FORM_ITEM_USE_TIME:
|
|
|
|
Form change activates when the item is used on the selected Pokémon at the
|
|
|
|
appropriate time of day.
|
|
|
|
param1 = item to use
|
|
|
|
param2 = DAY if form change activates in the daytime
|
|
|
|
NIGHT if form change activates at nighttime
|
2021-03-02 14:18:01 -06:00
|
|
|
*/
|
|
|
|
|
2021-10-02 11:55:21 -07:00
|
|
|
// FORM_MOVE param2 Arguments
|
|
|
|
#define WHEN_LEARNED 0
|
|
|
|
#define WHEN_FORGOTTEN 1
|
|
|
|
|
|
|
|
// FORM_ITEM_USE_TIME param2 Arguments
|
|
|
|
#define DAY 0
|
|
|
|
#define NIGHT 1
|
2021-03-02 14:18:01 -06:00
|
|
|
|
2022-08-22 17:27:21 -04:00
|
|
|
#if P_NEW_POKEMON == TRUE
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sGiratinaFormChangeTable[] = {
|
2021-09-28 23:44:22 -03:00
|
|
|
{FORM_ITEM_HOLD, SPECIES_GIRATINA, ITEM_NONE},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_ITEM_HOLD, SPECIES_GIRATINA_ORIGIN, ITEM_GRISEOUS_ORB},
|
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sShayminFormChangeTable[] = {
|
2021-10-02 11:55:21 -07:00
|
|
|
{FORM_ITEM_USE_TIME, SPECIES_SHAYMIN_SKY, ITEM_GRACIDEA, DAY},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_WITHDRAW, SPECIES_SHAYMIN},
|
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sArceusFormChangeTable[] = {
|
2021-10-02 11:55:21 -07:00
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS, ITEM_NONE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FIGHTING, ITEM_FIST_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FIGHTING, ITEM_FIGHTINIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FLYING, ITEM_SKY_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FLYING, ITEM_FLYINIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_POISON, ITEM_TOXIC_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_POISON, ITEM_POISONIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ROCK, ITEM_STONE_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ROCK, ITEM_ROCKIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GROUND, ITEM_EARTH_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GROUND, ITEM_GROUNDIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_BUG, ITEM_INSECT_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_BUG, ITEM_BUGINIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GHOST, ITEM_SPOOKY_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GHOST, ITEM_GHOSTIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_STEEL, ITEM_IRON_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_STEEL, ITEM_STEELIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FIRE, ITEM_FLAME_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FIRE, ITEM_FIRIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_WATER, ITEM_SPLASH_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_WATER, ITEM_WATERIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GRASS, ITEM_MEADOW_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_GRASS, ITEM_GRASSIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ELECTRIC, ITEM_ZAP_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ELECTRIC, ITEM_ELECTRIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_PSYCHIC, ITEM_MIND_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_PSYCHIC, ITEM_PSYCHIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ICE, ITEM_ICICLE_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_ICE, ITEM_ICIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_DRAGON, ITEM_DRACO_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_DRAGON, ITEM_DRAGONIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_DARK, ITEM_DREAD_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_DARK, ITEM_DARKINIUM_Z, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FAIRY, ITEM_PIXIE_PLATE, ABILITY_MULTITYPE},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_ARCEUS_FAIRY, ITEM_FAIRIUM_Z, ABILITY_MULTITYPE},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sTornadusFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_TORNADUS_THERIAN, ITEM_REVEAL_GLASS},
|
2022-02-26 12:58:49 -03:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
|
|
|
static const struct FormChange sTornadusTherianFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_TORNADUS, ITEM_REVEAL_GLASS},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sThundurusFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_THUNDURUS_THERIAN, ITEM_REVEAL_GLASS},
|
2022-02-26 12:58:49 -03:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
|
|
|
static const struct FormChange sThundurusTherianFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_THUNDURUS, ITEM_REVEAL_GLASS},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sLandorusFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_LANDORUS_THERIAN, ITEM_REVEAL_GLASS},
|
2022-02-26 12:58:49 -03:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
|
|
|
static const struct FormChange sLandorusTherianFormChangeTable[] = {
|
2022-02-26 12:19:38 -03:00
|
|
|
{FORM_ITEM_USE, SPECIES_LANDORUS, ITEM_REVEAL_GLASS},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sKeldeoFormChangeTable[] = {
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_MOVE, SPECIES_KELDEO_RESOLUTE, MOVE_SECRET_SWORD, WHEN_LEARNED},
|
2022-02-26 12:58:49 -03:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
|
|
|
static const struct FormChange sKeldeoResoluteFormChangeTable[] = {
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_MOVE, SPECIES_KELDEO, MOVE_SECRET_SWORD, WHEN_FORGOTTEN},
|
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sGenesectFormChangeTable[] = {
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_ITEM_HOLD, SPECIES_GENESECT, ITEM_NONE},
|
|
|
|
{FORM_ITEM_HOLD, SPECIES_GENESECT_DOUSE_DRIVE, ITEM_DOUSE_DRIVE},
|
|
|
|
{FORM_ITEM_HOLD, SPECIES_GENESECT_SHOCK_DRIVE, ITEM_SHOCK_DRIVE},
|
|
|
|
{FORM_ITEM_HOLD, SPECIES_GENESECT_BURN_DRIVE, ITEM_BURN_DRIVE},
|
|
|
|
{FORM_ITEM_HOLD, SPECIES_GENESECT_CHILL_DRIVE, ITEM_CHILL_DRIVE},
|
2021-05-28 19:24:44 -05:00
|
|
|
{FORM_CHANGE_END},
|
2021-03-02 14:18:01 -06:00
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sHoopaFormChangeTable[] = {
|
2022-02-26 12:58:49 -03:00
|
|
|
// {FORM_ITEM_USE, SPECIES_HOOPA_UNBOUND, ITEM_PRISON_BOTTLE, SPECIES_HOOPA},
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sHoopaUnboundFormChangeTable[] = {
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_WITHDRAW, SPECIES_HOOPA},
|
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sOricorioFormChangeTable[] = {
|
2021-03-02 14:18:01 -06:00
|
|
|
{FORM_ITEM_USE, SPECIES_ORICORIO, ITEM_RED_NECTAR},
|
|
|
|
{FORM_ITEM_USE, SPECIES_ORICORIO_POM_POM, ITEM_YELLOW_NECTAR},
|
|
|
|
{FORM_ITEM_USE, SPECIES_ORICORIO_PAU, ITEM_PINK_NECTAR},
|
|
|
|
{FORM_ITEM_USE, SPECIES_ORICORIO_SENSU, ITEM_PURPLE_NECTAR},
|
|
|
|
{FORM_CHANGE_END},
|
|
|
|
};
|
|
|
|
|
2021-03-03 13:07:50 -06:00
|
|
|
static const struct FormChange sSilvallyFormChangeTable[] = {
|
2021-10-02 11:55:21 -07:00
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY, ITEM_NONE, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_FIGHTING, ITEM_FIGHTING_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_FLYING, ITEM_FLYING_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_POISON, ITEM_POISON_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_GROUND, ITEM_GROUND_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_ROCK, ITEM_ROCK_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_BUG, ITEM_BUG_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_GHOST, ITEM_GHOST_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_STEEL, ITEM_STEEL_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_FIRE, ITEM_FIRE_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_WATER, ITEM_WATER_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_GRASS, ITEM_GRASS_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_ELECTRIC, ITEM_ELECTRIC_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_PSYCHIC, ITEM_PSYCHIC_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_ICE, ITEM_ICE_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_DRAGON, ITEM_DRAGON_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_DARK, ITEM_DARK_MEMORY, ABILITY_RKS_SYSTEM},
|
|
|
|
{FORM_ITEM_HOLD_ABILITY, SPECIES_SILVALLY_FAIRY, ITEM_FAIRY_MEMORY, ABILITY_RKS_SYSTEM},
|
2021-05-28 19:24:44 -05:00
|
|
|
{FORM_CHANGE_END},
|
2021-03-02 14:18:01 -06:00
|
|
|
};
|
2022-08-22 17:27:21 -04:00
|
|
|
#endif
|
2021-03-02 14:18:01 -06:00
|
|
|
|
|
|
|
#undef WHEN_LEARNED
|
2021-03-02 14:21:29 -06:00
|
|
|
#undef WHEN_FORGOTTEN
|