From 53110a0ff666ed04878f69641ec7ddbb46c72634 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 25 Nov 2022 17:29:00 -0300 Subject: [PATCH 1/2] Allow Lv100 'mons to access level based evos --- src/party_menu.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/party_menu.c b/src/party_menu.c index 635cd3fe03..533a401d9b 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5161,8 +5161,9 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) u16 *itemPtr = &gSpecialVar_ItemId; bool8 cannotUseEffect; u8 holdEffectParam = ItemId_GetHoldEffectParam(*itemPtr); - sInitialLevel = GetMonData(mon, MON_DATA_LEVEL); + u16 targetSpecies = GetEvolutionTargetSpecies(mon, EVO_MODE_NORMAL, ITEM_NONE, NULL); + sInitialLevel = GetMonData(mon, MON_DATA_LEVEL); if (sInitialLevel != MAX_LEVEL) { BufferMonStatsToTaskData(mon, arrayPtr); @@ -5176,10 +5177,17 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) PlaySE(SE_SELECT); if (cannotUseEffect) { - gPartyMenuUseExitCallback = FALSE; - DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); - ScheduleBgCopyTilemapToVram(2); - gTasks[taskId].func = task; + if (targetSpecies != SPECIES_NONE) + { + PartyMenuTryEvolution(taskId); + } + else + { + gPartyMenuUseExitCallback = FALSE; + DisplayPartyMenuMessage(gText_WontHaveEffect, TRUE); + ScheduleBgCopyTilemapToVram(2); + gTasks[taskId].func = task; + } } else { From add75d84c00c7d8453ac9a8cfbf0ebc2a5964b56 Mon Sep 17 00:00:00 2001 From: LOuroboros Date: Fri, 25 Nov 2022 18:12:51 -0300 Subject: [PATCH 2/2] Applied a couple of tweaks -Made it so only Rare Candies can evolve Lv100 'mons. Game Freak dumb. The Exp. Candies SHOULD work too. -Made sure to remove the candy that was used from the bag. --- src/party_menu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/party_menu.c b/src/party_menu.c index 533a401d9b..28aee957a2 100755 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -5177,9 +5177,10 @@ void ItemUseCB_RareCandy(u8 taskId, TaskFunc task) PlaySE(SE_SELECT); if (cannotUseEffect) { - if (targetSpecies != SPECIES_NONE) + if (targetSpecies != SPECIES_NONE && holdEffectParam == 0) { PartyMenuTryEvolution(taskId); + RemoveBagItem(gSpecialVar_ItemId, 1); } else {