-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Allow All Pokemon to Evolve Without Trading
voloved edited this page Mar 7, 2023
·
3 revisions
By devolov
Goal: Make all Pokemon able to reach their final evolution without trading.
For Pokemon who trade with items, make the item have like an evolutionary stone.
Allow evolving with a trade to still work, in case anyone wants to still do it the old-fashioned way.
Change the level they evolve to whatever you'd like.
------------------------- src/data/pokemon/evolution.h -------------------------
index a1b5a6509..e2e6ab7fc 100644
@@ -37,29 +37,36 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_MANKEY] = {{EVO_LEVEL, 28, SPECIES_PRIMEAPE}},
[SPECIES_GROWLITHE] = {{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE}},
[SPECIES_POLIWAG] = {{EVO_LEVEL, 25, SPECIES_POLIWHIRL}},
[SPECIES_POLIWHIRL] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_POLIWRATH},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED},
+ {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_POLITOED}},
[SPECIES_ABRA] = {{EVO_LEVEL, 16, SPECIES_KADABRA}},
- [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM}},
+ [SPECIES_KADABRA] = {{EVO_TRADE, 0, SPECIES_ALAKAZAM},
+ {EVO_LEVEL, 34, SPECIES_ALAKAZAM}},
[SPECIES_MACHOP] = {{EVO_LEVEL, 28, SPECIES_MACHOKE}},
- [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP}},
+ [SPECIES_MACHOKE] = {{EVO_TRADE, 0, SPECIES_MACHAMP},
+ {EVO_LEVEL, 40, SPECIES_MACHAMP}},
[SPECIES_BELLSPROUT] = {{EVO_LEVEL, 21, SPECIES_WEEPINBELL}},
[SPECIES_WEEPINBELL] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_VICTREEBEL}},
[SPECIES_TENTACOOL] = {{EVO_LEVEL, 30, SPECIES_TENTACRUEL}},
[SPECIES_GEODUDE] = {{EVO_LEVEL, 25, SPECIES_GRAVELER}},
- [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM}},
+ [SPECIES_GRAVELER] = {{EVO_TRADE, 0, SPECIES_GOLEM},
+ {EVO_LEVEL, 42, SPECIES_GOLEM}},
[SPECIES_PONYTA] = {{EVO_LEVEL, 40, SPECIES_RAPIDASH}},
[SPECIES_SLOWPOKE] = {{EVO_LEVEL, 37, SPECIES_SLOWBRO},
- {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
+ {EVO_TRADE_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING},
+ {EVO_ITEM, ITEM_KINGS_ROCK, SPECIES_SLOWKING}},
[SPECIES_MAGNEMITE] = {{EVO_LEVEL, 30, SPECIES_MAGNETON}},
[SPECIES_DODUO] = {{EVO_LEVEL, 31, SPECIES_DODRIO}},
[SPECIES_SEEL] = {{EVO_LEVEL, 34, SPECIES_DEWGONG}},
[SPECIES_GRIMER] = {{EVO_LEVEL, 38, SPECIES_MUK}},
[SPECIES_SHELLDER] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_CLOYSTER}},
[SPECIES_GASTLY] = {{EVO_LEVEL, 25, SPECIES_HAUNTER}},
- [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR}},
- [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
+ [SPECIES_HAUNTER] = {{EVO_TRADE, 0, SPECIES_GENGAR},
+ {EVO_LEVEL, 36, SPECIES_GENGAR}},
+ [SPECIES_ONIX] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX},
+ {EVO_ITEM, ITEM_METAL_COAT, SPECIES_STEELIX}},
[SPECIES_DROWZEE] = {{EVO_LEVEL, 26, SPECIES_HYPNO}},
[SPECIES_KRABBY] = {{EVO_LEVEL, 28, SPECIES_KINGLER}},
[SPECIES_VOLTORB] = {{EVO_LEVEL, 30, SPECIES_ELECTRODE}},
[SPECIES_EXEGGCUTE] = {{EVO_ITEM, ITEM_LEAF_STONE, SPECIES_EXEGGUTOR}},
@@ -67,19 +74,22 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_KOFFING] = {{EVO_LEVEL, 35, SPECIES_WEEZING}},
[SPECIES_RHYHORN] = {{EVO_LEVEL, 42, SPECIES_RHYDON}},
[SPECIES_CHANSEY] = {{EVO_FRIENDSHIP, 0, SPECIES_BLISSEY}},
[SPECIES_HORSEA] = {{EVO_LEVEL, 32, SPECIES_SEADRA}},
- [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
+ [SPECIES_SEADRA] = {{EVO_TRADE_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA},
+ {EVO_ITEM, ITEM_DRAGON_SCALE, SPECIES_KINGDRA}},
[SPECIES_GOLDEEN] = {{EVO_LEVEL, 33, SPECIES_SEAKING}},
[SPECIES_STARYU] = {{EVO_ITEM, ITEM_WATER_STONE, SPECIES_STARMIE}},
- [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
+ [SPECIES_SCYTHER] = {{EVO_TRADE_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR},
+ {EVO_ITEM, ITEM_METAL_COAT, SPECIES_SCIZOR}},
[SPECIES_MAGIKARP] = {{EVO_LEVEL, 20, SPECIES_GYARADOS}},
[SPECIES_EEVEE] = {{EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_JOLTEON},
{EVO_ITEM, ITEM_WATER_STONE, SPECIES_VAPOREON},
{EVO_ITEM, ITEM_FIRE_STONE, SPECIES_FLAREON},
{EVO_FRIENDSHIP_DAY, 0, SPECIES_ESPEON},
{EVO_FRIENDSHIP_NIGHT, 0, SPECIES_UMBREON}},
- [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
+ [SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2},
+ {EVO_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
[SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
[SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
[SPECIES_DRATINI] = {{EVO_LEVEL, 30, SPECIES_DRAGONAIR}},
[SPECIES_DRAGONAIR] = {{EVO_LEVEL, 55, SPECIES_DRAGONITE}},
@@ -171,9 +181,11 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
[SPECIES_GULPIN] = {{EVO_LEVEL, 26, SPECIES_SWALOT}},
[SPECIES_WHISMUR] = {{EVO_LEVEL, 20, SPECIES_LOUDRED}},
[SPECIES_LOUDRED] = {{EVO_LEVEL, 40, SPECIES_EXPLOUD}},
[SPECIES_CLAMPERL] = {{EVO_TRADE_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
- {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
+ {EVO_TRADE_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS},
+ {EVO_ITEM, ITEM_DEEP_SEA_TOOTH, SPECIES_HUNTAIL},
+ {EVO_ITEM, ITEM_DEEP_SEA_SCALE, SPECIES_GOREBYSS}},
[SPECIES_SHUPPET] = {{EVO_LEVEL, 37, SPECIES_BANETTE}},
[SPECIES_ARON] = {{EVO_LEVEL, 32, SPECIES_LAIRON}},
[SPECIES_LAIRON] = {{EVO_LEVEL, 42, SPECIES_AGGRON}},
[SPECIES_LILEEP] = {{EVO_LEVEL, 40, SPECIES_CRADILY}},
------------------------------- src/data/items.h -------------------------------
index 35d7167c1..8b4d0ee48 100644
@@ -2289,10 +2289,10 @@ const struct Item gItems[] =
.holdEffect = HOLD_EFFECT_FLINCH,
.holdEffectParam = 10,
.description = sKingsRockDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_SILVER_POWDER] =
{
@@ -2351,10 +2351,10 @@ const struct Item gItems[] =
.price = 200,
.holdEffect = HOLD_EFFECT_DEEP_SEA_TOOTH,
.description = sDeepSeaToothDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_DEEP_SEA_SCALE] =
{
@@ -2363,10 +2363,10 @@ const struct Item gItems[] =
.price = 200,
.holdEffect = HOLD_EFFECT_DEEP_SEA_SCALE,
.description = sDeepSeaScaleDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_SMOKE_BALL] =
{
@@ -2437,10 +2437,10 @@ const struct Item gItems[] =
.holdEffect = HOLD_EFFECT_STEEL_POWER,
.holdEffectParam = 10,
.description = sMetalCoatDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_LEFTOVERS] =
{
@@ -2463,10 +2463,10 @@ const struct Item gItems[] =
.holdEffect = HOLD_EFFECT_DRAGON_SCALE,
.holdEffectParam = 10,
.description = sDragonScaleDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_LIGHT_BALL] =
{
@@ -2682,10 +2682,10 @@ const struct Item gItems[] =
.price = 2100,
.holdEffect = HOLD_EFFECT_UP_GRADE,
.description = sUpGradeDesc,
.pocket = POCKET_ITEMS,
- .type = ITEM_USE_BAG_MENU,
- .fieldUseFunc = ItemUseOutOfBattle_CannotUse,
+ .type = ITEM_USE_PARTY_MENU,
+ .fieldUseFunc = ItemUseOutOfBattle_EvolutionStone,
},
[ITEM_SHELL_BELL] =
{
-------------------------- include/constants/items.h --------------------------
index 10f3f4d26..0057ebab5 100644
@@ -535,7 +535,9 @@
#define ITEM_B_USE_MEDICINE 1
#define ITEM_B_USE_OTHER 2
// Check if the item is one that can be used on a Pokemon.
-#define ITEM_HAS_EFFECT(item) ((item) >= ITEM_POTION && (item) <= MAX_BERRY_INDEX)
+#define ITEM_HAS_EFFECT(item) (((item) >= ITEM_POTION && (item) <= MAX_BERRY_INDEX) \
+|| (item) == ITEM_KINGS_ROCK || (item) == ITEM_DRAGON_SCALE || (item) == ITEM_METAL_COAT \
+|| (item) == ITEM_UP_GRADE || (item) == ITEM_DEEP_SEA_TOOTH || (item) == ITEM_DEEP_SEA_SCALE)
#endif // GUARD_CONSTANTS_ITEMS_H
----------------------- src/data/pokemon/item_effects.h -----------------------
index 00872a9b2..4686fb8ca 100644
@@ -295,8 +295,32 @@ const u8 gItemEffect_WaterStone[6] = {
const u8 gItemEffect_LeafStone[6] = {
[4] = ITEM4_EVO_STONE,
};
+const u8 gItemEffect_KingsRock[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
+const u8 gItemEffect_DragonScale[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
+const u8 gItemEffect_MetalCoat[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
+const u8 gItemEffect_UpGrade[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
+const u8 gItemEffect_DeepSeaScale[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
+const u8 gItemEffect_DeepSeaTooth[6] = {
+ [4] = ITEM4_EVO_STONE,
+};
+
const u8 gItemEffect_CheriBerry[6] = {
[3] = ITEM3_PARALYSIS,
};
@@ -452,6 +476,12 @@ const u8 *const gItemEffectTable[] =
[ITEM_QUALOT_BERRY - ITEM_POTION] = gItemEffect_QualotBerry,
[ITEM_HONDEW_BERRY - ITEM_POTION] = gItemEffect_HondewBerry,
[ITEM_GREPA_BERRY - ITEM_POTION] = gItemEffect_GrepaBerry,
[ITEM_TAMATO_BERRY - ITEM_POTION] = gItemEffect_TamatoBerry,
+ [ITEM_KINGS_ROCK - ITEM_POTION] = gItemEffect_KingsRock,
+ [ITEM_DRAGON_SCALE - ITEM_POTION] = gItemEffect_DragonScale,
+ [ITEM_METAL_COAT - ITEM_POTION] = gItemEffect_MetalCoat,
+ [ITEM_UP_GRADE - ITEM_POTION] = gItemEffect_UpGrade,
+ [ITEM_DEEP_SEA_SCALE - ITEM_POTION] = gItemEffect_DeepSeaScale,
+ [ITEM_DEEP_SEA_TOOTH - ITEM_POTION] = gItemEffect_DeepSeaTooth,
[LAST_BERRY_INDEX - ITEM_POTION] = NULL
};