Added missing cross-gen evolutions (#3547)

* Added missing cross-gen evolutions

* Added forms for evos

* Converted some EVO_NONEs into EVO_MOVE

* Moved Ursaring's evolution up

* Added evolution methods for Dudunsparce and Maushold
This commit is contained in:
Frank DeBlasio 2023-11-09 17:29:22 -05:00 committed by GitHub
parent e79583be63
commit 33815079ae
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 4 deletions

View File

@ -288,6 +288,10 @@
#define EVO_ITEM_DAY 40 // specified item is used on Pokémon, is day
#define EVO_ITEM_HOLD 41 // Pokémon levels up, holds specified item
#define EVO_LEVEL_FOG 42 // Pokémon reaches the specified level during fog in the overworld
#define EVO_MOVE_TWO_SEGMENT 43 // Pokémon levels up, knows specified move, has a personality value with a modulus of 0
#define EVO_MOVE_THREE_SEGMENT 44 // Pokémon levels up, knows specified move, has a personality value with a modulus of 1-9
#define EVO_LEVEL_FAMILY_OF_THREE 45 // Pokémon reaches the specified level with a personality value with a modulus of 0
#define EVO_LEVEL_FAMILY_OF_FOUR 46 // Pokémon reaches the specified level with a personality value with a modulus of 1-9
#define EVOS_PER_MON 11

View File

@ -36,6 +36,9 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_MEOWTH] = {{EVO_LEVEL, 28, SPECIES_PERSIAN}},
[SPECIES_PSYDUCK] = {{EVO_LEVEL, 33, SPECIES_GOLDUCK}},
[SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
#if P_GEN_9_POKEMON == TRUE
[SPECIES_PRIMEAPE] = {{EVO_MOVE, MOVE_RAGE_FIST, SPECIES_ANNIHILAPE}},
#endif
[SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
[SPECIES_GROWLITHE_HISUIAN] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUIAN}},
[SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
@ -167,8 +170,15 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
#if P_GEN_4_POKEMON == TRUE
[SPECIES_MURKROW] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_HONCHKROW}},
[SPECIES_MISDREAVUS] = {{EVO_ITEM, ITEM_DUSK_STONE, SPECIES_MISMAGIUS}},
#endif
#if P_GEN_9_POKEMON == TRUE
[SPECIES_GIRAFARIG] = {{EVO_MOVE, MOVE_TWIN_BEAM, SPECIES_FARIGIRAF}},
#endif
[SPECIES_PINECO] = {{EVO_LEVEL, 31, SPECIES_FORRETRESS}},
#if P_GEN_9_POKEMON == TRUE
[SPECIES_DUNSPARCE] = {{EVO_MOVE_TWO_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_TWO_SEGMENT},
{EVO_MOVE_THREE_SEGMENT, MOVE_HYPER_DRILL, SPECIES_DUDUNSPARCE_THREE_SEGMENT}},
#endif
#if P_GEN_4_POKEMON == TRUE
[SPECIES_GLIGAR] = {{EVO_ITEM_HOLD_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR},
{EVO_ITEM_NIGHT, ITEM_RAZOR_FANG, SPECIES_GLISCOR}},
@ -179,6 +189,9 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
{EVO_ITEM_NIGHT, ITEM_RAZOR_CLAW, SPECIES_WEAVILE}},
#endif
[SPECIES_TEDDIURSA] = {{EVO_LEVEL, 30, SPECIES_URSARING}},
#if P_GEN_8_POKEMON == TRUE
[SPECIES_URSARING] = {{EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}},
#endif
[SPECIES_SLUGMA] = {{EVO_LEVEL, 38, SPECIES_MAGCARGO}},
[SPECIES_SWINUB] = {{EVO_LEVEL, 33, SPECIES_PILOSWINE}},
#if P_GEN_4_POKEMON == TRUE
@ -190,6 +203,9 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
#if P_GEN_4_POKEMON == TRUE
[SPECIES_PORYGON2] = {{EVO_TRADE_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z},
{EVO_ITEM, ITEM_DUBIOUS_DISC, SPECIES_PORYGON_Z}},
#endif
#if P_GEN_9_POKEMON == TRUE
[SPECIES_STANTLER] = {{EVO_MOVE, MOVE_PSYSHIELD_BASH, SPECIES_WYRDEER}},
#endif
[SPECIES_TYROGUE] = {{EVO_LEVEL_ATK_LT_DEF, 20, SPECIES_HITMONCHAN},
{EVO_LEVEL_ATK_GT_DEF, 20, SPECIES_HITMONLEE},
@ -363,6 +379,10 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_COTTONEE] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_WHIMSICOTT}},
[SPECIES_PETILIL] = {{EVO_ITEM, ITEM_SUN_STONE, SPECIES_LILLIGANT},
{EVO_NONE, 0, SPECIES_LILLIGANT_HISUIAN}},
#if P_GEN_9_POKEMON == TRUE
[SPECIES_BASCULIN_WHITE_STRIPED] = {{EVO_NONE, 0, SPECIES_BASCULEGION_MALE},
{EVO_NONE, 0, SPECIES_BASCULEGION_FEMALE}},
#endif
[SPECIES_SANDILE] = {{EVO_LEVEL, 29, SPECIES_KROKOROK}},
[SPECIES_KROKOROK] = {{EVO_LEVEL, 40, SPECIES_KROOKODILE}},
[SPECIES_DARUMAKA] = {{EVO_LEVEL, 35, SPECIES_DARMANITAN_STANDARD_MODE}},
@ -402,6 +422,9 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_MIENFOO] = {{EVO_LEVEL, 50, SPECIES_MIENSHAO}},
[SPECIES_GOLETT] = {{EVO_LEVEL, 43, SPECIES_GOLURK}},
[SPECIES_PAWNIARD] = {{EVO_LEVEL, 52, SPECIES_BISHARP}},
#if P_GEN_9_POKEMON == TRUE
[SPECIES_BISHARP] = {{EVO_NONE, 0, SPECIES_KINGAMBIT}},
#endif
[SPECIES_RUFFLET] = {{EVO_LEVEL, 54, SPECIES_BRAVIARY},
{EVO_NONE, 0, SPECIES_BRAVIARY_HISUIAN}},
[SPECIES_VULLABY] = {{EVO_LEVEL, 54, SPECIES_MANDIBUZZ}},
@ -557,8 +580,8 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_NYMBLE] = {{EVO_LEVEL, 24, SPECIES_LOKIX}},
[SPECIES_PAWMI] = {{EVO_LEVEL, 18, SPECIES_PAWMO}},
[SPECIES_PAWMO] = {{EVO_NONE, 0, SPECIES_PAWMOT}},
[SPECIES_TANDEMAUS] = {{EVO_NONE, 0, SPECIES_MAUSHOLD_FAMILY_OF_FOUR},
{EVO_NONE, 0, SPECIES_MAUSHOLD_FAMILY_OF_THREE}},
[SPECIES_TANDEMAUS] = {{EVO_LEVEL_FAMILY_OF_FOUR, 25, SPECIES_MAUSHOLD_FAMILY_OF_FOUR},
{EVO_LEVEL_FAMILY_OF_THREE, 25, SPECIES_MAUSHOLD_FAMILY_OF_THREE}},
[SPECIES_FIDOUGH] = {{EVO_LEVEL, 26, SPECIES_DACHSBUN}},
[SPECIES_SMOLIV] = {{EVO_LEVEL, 25, SPECIES_DOLLIV}},
[SPECIES_DOLLIV] = {{EVO_LEVEL, 35, SPECIES_ARBOLIVA}},
@ -594,7 +617,7 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_SANDSHREW_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLAN}},
[SPECIES_VULPIX_ALOLAN] = {{EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLAN}},
[SPECIES_DIGLETT_ALOLAN] = {{EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLAN}},
[SPECIES_MEOWTH_ALOLAN] = {{EVO_FRIENDSHIP, 28, SPECIES_PERSIAN_ALOLAN}},
[SPECIES_MEOWTH_ALOLAN] = {{EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLAN}},
[SPECIES_GEODUDE_ALOLAN] = {{EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLAN}},
[SPECIES_GRAVELER_ALOLAN] = {{EVO_TRADE, 0, SPECIES_GOLEM_ALOLAN},
{EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLAN}},
@ -650,7 +673,6 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
#endif
#if P_GEN_8_POKEMON == TRUE
[SPECIES_SINISTEA_ANTIQUE] = {{EVO_ITEM, ITEM_CHIPPED_POT, SPECIES_POLTEAGEIST_ANTIQUE}},
[SPECIES_URSARING] = {{EVO_ITEM_NIGHT, ITEM_PEAT_BLOCK, SPECIES_URSALUNA}},
[SPECIES_QWILFISH_HISUIAN] = {{EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}},
[SPECIES_SNEASEL_HISUIAN] = {{EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER},
{EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}},

View File

@ -7134,6 +7134,14 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s
if (gEvolutionTable[species][i].param <= level)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_FAMILY_OF_FOUR:
if (gEvolutionTable[species][i].param <= level && (personality % 100) != 0)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_LEVEL_FAMILY_OF_THREE:
if (gEvolutionTable[species][i].param <= level && (personality % 100) == 0)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_BEAUTY:
if (gEvolutionTable[species][i].param <= beauty)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
@ -7142,6 +7150,14 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, s
if (MonKnowsMove(mon, gEvolutionTable[species][i].param))
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_MOVE_TWO_SEGMENT:
if (MonKnowsMove(mon, gEvolutionTable[species][i].param) && (personality % 100) != 0)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_MOVE_THREE_SEGMENT:
if (MonKnowsMove(mon, gEvolutionTable[species][i].param) && (personality % 100) == 0)
targetSpecies = gEvolutionTable[species][i].targetSpecies;
break;
case EVO_FRIENDSHIP_MOVE_TYPE:
if (friendship >= FRIENDSHIP_EVO_THRESHOLD)
{