From 9e79e9adbe0b79180d7afb12bfd14beda4cfcc2a Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Mon, 20 Apr 2026 16:25:37 -0500 Subject: [PATCH 1/3] Recover from missed battle transition. --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 4d5e3d71c..72ed2162d 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -226,6 +226,7 @@ bool LuckyEggFarmer::find_encounter(SingleSwitchProgramEnvironment& env, ProCont context.wait_for_all_requests(); BlackScreenWatcher battle_entered(COLOR_RED); + AdvanceBattleDialogWatcher battle_dialog(COLOR_RED); // This could be removed if spin in place stops drifting. AdvanceWhiteDialogWatcher out_of_steps(COLOR_RED); @@ -239,13 +240,13 @@ bool LuckyEggFarmer::find_encounter(SingleSwitchProgramEnvironment& env, ProCont pbf_move_left_joystick(context, { -1, 0 }, 33ms, 150ms); context.wait_for_all_requests(); }, - { battle_entered, out_of_steps } + { battle_entered, out_of_steps, battle_dialog } ); pbf_wait(context, 100ms); context.wait_for_all_requests(); - if (ret == 0) { + if (ret == 0 || ret == 2) { env.log("Battle entered."); return true; } From e652c2b58e7912ed434f03260f4150eff8b8f1b6 Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Mon, 20 Apr 2026 22:02:35 -0500 Subject: [PATCH 2/3] Add screenshot on finish --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 72ed2162d..7bee6ab93 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -457,6 +457,15 @@ bool LuckyEggFarmer::run_safari_zone(SingleSwitchProgramEnvironment& env, ProCon env.log("Lucky Egg found!"); stats.eggs++; env.update_stats(); + send_program_notification( + env, + NOTIFICATION_PROGRAM_FINISH, + COLOR_YELLOW, + "Lucky Egg found!", + {}, "", + env.console.video().snapshot(), + true + ); return true; } env.log("Lucky Egg not found. Continuing to farm..."); From efc748414d6f7ffb95e0e782751637d06ec0b6a4 Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Mon, 20 Apr 2026 22:05:29 -0500 Subject: [PATCH 3/3] Send better notification --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 7bee6ab93..32adbca91 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -537,7 +537,8 @@ void LuckyEggFarmer::program(SingleSwitchProgramEnvironment& env, ProControllerC swap_lead_pokemon(env.console, context); if (run_safari_zone(env, context)) { - break; + GO_HOME_WHEN_DONE.run_end_of_program(context); + return; // Already sent notification in run_safari_zone if shiny or lucky egg found. } soft_reset(env.console, context);