From 7c6f76323a298aaa971d38c8e298b123a21c3351 Mon Sep 17 00:00:00 2001 From: Eduardo Quezada D'Ottone Date: Fri, 26 Nov 2021 22:56:48 -0300 Subject: [PATCH] Added NidoranM/Volbeat Ditto breeding config + Rotom & Furfrou --- include/constants/pokemon_config.h | 1 + src/daycare.c | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/include/constants/pokemon_config.h b/include/constants/pokemon_config.h index 6d45eb9be8..78338d0f7d 100644 --- a/include/constants/pokemon_config.h +++ b/include/constants/pokemon_config.h @@ -17,6 +17,7 @@ #define P_UPDATED_ABILITIES GEN_8 // Since Gen 6, certain Pokémon have their abilities changed. Requires BATTLE_ENGINE for Gen4+ abilities. #define P_UPDATED_EGG_GROUPS GEN_8 // Since Gen 8, certain Pokémon have gained new egg groups. #define P_SHEDINJA_BALL GEN_8 // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. +#define P_NIDORAN_M_DITTO_BREED GEN_8 // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. #ifndef ITEM_EXPANSION //Item Definitions for gEvolutionTable diff --git a/src/daycare.c b/src/daycare.c index d177b07a8f..ccd2af7053 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -794,14 +794,24 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent eggSpecies = GetEggSpecies(species[parentSlots[0]]); if (eggSpecies == SPECIES_NIDORAN_F && daycare->offspringPersonality & EGG_GENDER_MALE) eggSpecies = SPECIES_NIDORAN_M; - if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE) + else if (eggSpecies == SPECIES_ILLUMISE && daycare->offspringPersonality & EGG_GENDER_MALE) eggSpecies = SPECIES_VOLBEAT; - if (eggSpecies == SPECIES_MANAPHY) + #if P_NIDORAN_M_DITTO_BREED >= GEN_5 + else if (eggSpecies == SPECIES_NIDORAN_M && !(daycare->offspringPersonality & EGG_GENDER_MALE)) + eggSpecies = SPECIES_NIDORAN_F; + else if (eggSpecies == SPECIES_VOLBEAT && !(daycare->offspringPersonality & EGG_GENDER_MALE)) + eggSpecies = SPECIES_ILLUMISE; + #endif + else if (eggSpecies == SPECIES_MANAPHY) eggSpecies = SPECIES_PHIONE; - if (eggSpecies == SPECIES_SINISTEA_ANTIQUE) + else if (eggSpecies == SPECIES_SINISTEA_ANTIQUE) eggSpecies = SPECIES_SINISTEA; - if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_VIVILLON) + else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_VIVILLON) eggSpecies = SPECIES_SCATTERBUG; + else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_ROTOM) + eggSpecies = SPECIES_ROTOM; + else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_FURFROU) + eggSpecies = SPECIES_FURFROU; // Make Ditto the "mother" slot if the other daycare mon is male. if (species[parentSlots[1]] == SPECIES_DITTO && GetBoxMonGender(&daycare->mons[parentSlots[0]].mon) != MON_FEMALE)