added "evolve by level with dark type in party"

judicornadamsfoster
2026-07-01 21:41:33 +01:00
parent a5779aab03
commit 451bcb7fc2

@@ -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}},
```