From 451bcb7fc28fa3feb32daa50f10c3f246c4a1bca Mon Sep 17 00:00:00 2001 From: judicornadamsfoster Date: Wed, 1 Jul 2026 21:41:33 +0100 Subject: [PATCH] added "evolve by level with dark type in party" --- New-Evolution-Methods.md | 59 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/New-Evolution-Methods.md b/New-Evolution-Methods.md index ccbed8a..d80d922 100644 --- a/New-Evolution-Methods.md +++ b/New-Evolution-Methods.md @@ -4,6 +4,7 @@ * 7th June - EVO_LEVEL_RAIN * 17th June - EVO_LEVEL_NATURE_AMPED & EVO_LEVEL_NATURE_LOW_KEY * 21st June - EVO_BY_ITEM_COUNT +* 1st July - EVO_LEVEL_DARK_TYPE_IN_PARTY > All of the methods in this guide are in [this branch](https://github.com/tenaya15/tenaya15emerald/tree/new_evo_methods) | ([compare here](https://github.com/pret/pokeemerald/compare/master...tenaya15:tenaya15emerald:new_evo_methods)) ``` @@ -12,7 +13,7 @@ git pull tenaya15 master ``` __________ > -- part of the methods in this guide comes from [The Law's PokeCommunity post](https://www.pokecommunity.com/threads/custom-evolution-methods.417505/) -> -- most of this code is from other opensource hacks, namely: `pokeemerald-expansion`, `Modern Emerald`, `pokemonHNS`, `pokemonROWE`, `scrambled-emerald` +> -- most of this code is from other opensource hacks, namely: `pokeemerald-expansion`, `Modern Emerald`, `pokemonHNS`, `pokemonROWE`, `scrambled-emerald`, `emerald++` > -- for scripted evolution, see [Anon822's PokeCommunity post](https://www.pokecommunity.com/threads/simple-modifications-directory.416647/page-21#post-10552961) > (example: Eevee evolves into Leafeon when you interact with a Moss Stone object in Petalburg Woods) > -- for AsparagusEduardo's Branched Alolan Evolution, see [here]( https://github.com/pret/pokeemerald/wiki/Branched-Alolan-Evolution) or [exact commit here](https://github.com/AsparagusEduardo/pokeemerald/commit/21bc0d281f1a7139bd4cf8722bf9932adebf07e7) @@ -122,7 +123,7 @@ in evolution method section, add after `#define EVO_BEAUTY` #define EVO_LEVEL_NATURE_AMPED 39 // reach specific level with nature #define EVO_LEVEL_NATURE_LOW_KEY 40 // reach specific level with nature #define EVO_BY_ITEM_COUNT 41 // level up and have number of specific items in bag, items then removed, DEFINE_ITEM_COUNT_FOR_EVO must be defined in src/pokemon.c - +#define EVO_LEVEL_DARK_TYPE_IN_PARTY 42 // reach level with a dark type mon in party // end of new evo methods @@ -506,6 +507,21 @@ replace everything with: RemoveBagItem(gEvolutionTable[species][i].param, DEFINE_ITEM_COUNT_FOR_EVO); } break; + case EVO_LEVEL_DARK_TYPE_IN_PARTY: + if (gEvolutionTable[species][i].param <= level) + { + for (j = 0; j < PARTY_SIZE; j++) + { + u16 currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL); + if (gSpeciesInfo[currSpecies].types[0] == TYPE_DARK + || gSpeciesInfo[currSpecies].types[1] == TYPE_DARK) + { + targetSpecies = gEvolutionTable[species][i].targetSpecies; + break; + } + } + } + break; } } break; @@ -640,6 +656,8 @@ example evolutions using the new methods [SPECIES_GIMMIGHOUL] = {{EVO_BY_ITEM_COUNT, ITEM_GIMMIGHOUL_COIN, SPECIES_GHOLDENGO}}, + [SPECIES_PANCHAM] = {{EVO_LEVEL, 32, SPECIES_PANGORO}}, + *** ### Edits @@ -799,3 +817,40 @@ in `src/data/pokemon/evolution.c` add the evolution example: [SPECIES_GIMMIGHOUL] = {{EVO_BY_ITEM_COUNT, ITEM_GIMMIGHOUL_COIN, SPECIES_GHOLDENGO}}, ``` + + +* 1st July 2026: Evolve by level while having Dark type Pokemon in party + +in `include/constants/pokemon.h` +add +``` +#define EVO_LEVEL_DARK_TYPE_IN_PARTY 42 // reach level with a dark type mon in party +``` + +in `src/pokemon.c` + +in section `u16 GetEvolutionTargetSpecies` +add to EVO_NORMAL section: +``` + case EVO_LEVEL_DARK_TYPE_IN_PARTY: + if (gEvolutionTable[species][i].param <= level) + { + for (j = 0; j < PARTY_SIZE; j++) + { + u16 currSpecies = GetMonData(&gPlayerParty[j], MON_DATA_SPECIES, NULL); + if (gSpeciesInfo[currSpecies].types[0] == TYPE_DARK + || gSpeciesInfo[currSpecies].types[1] == TYPE_DARK) + { + targetSpecies = gEvolutionTable[species][i].targetSpecies; + break; + } + } + } + break; +``` + +in `src/data/pokemon/evolution.c` add the evolution +``` +example: + [SPECIES_PANCHAM] = {{EVO_LEVEL, 32, SPECIES_PANGORO}}, +```