From b4e37ec9ff080233e017832964f14c00f739a2ef Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Wed, 15 Apr 2026 06:38:26 -0500 Subject: [PATCH 1/3] Checking the party menu in the safari zone building needs standard menu --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 12 +++++++++--- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.h | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 188a6bcd8..3249cd0b2 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -360,8 +360,14 @@ bool LuckyEggFarmer::attempt_catch(SingleSwitchProgramEnvironment& env, ProContr } } -bool LuckyEggFarmer::check_for_lucky_egg(ConsoleHandle& console, ProControllerContext& context) { - open_party_menu_from_overworld(console, context, StartMenuContext::SAFARI_ZONE); +bool LuckyEggFarmer::check_for_lucky_egg(ConsoleHandle& console, ProControllerContext& context, bool returned_to_building) { + if (returned_to_building) { + open_party_menu_from_overworld(console, context, StartMenuContext::STANDARD); + } + else { + open_party_menu_from_overworld(console, context, StartMenuContext::SAFARI_ZONE); + } + PartyHeldItemDetector held_item_detector(COLOR_RED, &console.overlay(), ImageFloatBox(0.432, 0.3, 0.030, 0.485)); if (held_item_detector.detect(console.video().snapshot())) { return true; @@ -480,7 +486,7 @@ void LuckyEggFarmer::program(SingleSwitchProgramEnvironment& env, ProControllerC } if (caught) { - if (check_for_lucky_egg(env.console, context)) { + if (check_for_lucky_egg(env.console, context, in_safari_zone_building)) { env.log("Lucky Egg found!"); stats.eggs++; env.update_stats(); diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.h b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.h index dc426391c..d3e986838 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.h +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.h @@ -43,7 +43,7 @@ class LuckyEggFarmer : public SingleSwitchProgramInstance { bool is_chansey(SingleSwitchProgramEnvironment& env, ProControllerContext& context); bool find_encounter(SingleSwitchProgramEnvironment& env, ProControllerContext& context); bool attempt_catch(SingleSwitchProgramEnvironment& env, ProControllerContext& context, int& balls_left); - bool check_for_lucky_egg(ConsoleHandle& console, ProControllerContext& context); + bool check_for_lucky_egg(ConsoleHandle& console, ProControllerContext& context, bool returned_to_building); OCR::LanguageOCROption LANGUAGE; From 0bb56bd56ec428dad60d5cfa0075d71debc16e7b Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Wed, 15 Apr 2026 06:49:28 -0500 Subject: [PATCH 2/3] Also check for remaining safari balls --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 3249cd0b2..87bbc3d09 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -475,6 +475,10 @@ void LuckyEggFarmer::program(SingleSwitchProgramEnvironment& env, ProControllerC WhiteDialogDetector dialog(COLOR_RED); bool in_safari_zone_building = dialog.detect(env.console.video().snapshot()); + + if (balls_left <= 0) { + in_safari_zone_building = true; + } if (in_safari_zone_building && !caught) { break; From 461aadf531bd2bfd0440d05f76f25db8fb7905bc Mon Sep 17 00:00:00 2001 From: Dalton-V Date: Wed, 15 Apr 2026 06:55:45 -0500 Subject: [PATCH 3/3] spc --- .../Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp index 87bbc3d09..d65ab9db8 100644 --- a/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp +++ b/SerialPrograms/Source/PokemonFRLG/Programs/Farming/PokemonFRLG_LuckyEggFarmer.cpp @@ -361,7 +361,7 @@ bool LuckyEggFarmer::attempt_catch(SingleSwitchProgramEnvironment& env, ProContr } bool LuckyEggFarmer::check_for_lucky_egg(ConsoleHandle& console, ProControllerContext& context, bool returned_to_building) { - if (returned_to_building) { + if (returned_to_building) { open_party_menu_from_overworld(console, context, StartMenuContext::STANDARD); } else { @@ -476,7 +476,7 @@ void LuckyEggFarmer::program(SingleSwitchProgramEnvironment& env, ProControllerC WhiteDialogDetector dialog(COLOR_RED); bool in_safari_zone_building = dialog.detect(env.console.video().snapshot()); - if (balls_left <= 0) { + if (balls_left <= 0) { in_safari_zone_building = true; }