Skip to content

Commit 1d26f47

Browse files
committed
groudon
1 parent fe1726e commit 1d26f47

File tree

2 files changed

+113
-2
lines changed

2 files changed

+113
-2
lines changed

SerialPrograms/Source/PokemonRSE/Programs/ShinyHunting/PokemonRSE_LegendaryHunt-Emerald.cpp

Lines changed: 109 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ LegendaryHuntEmerald::LegendaryHuntEmerald()
5454
"<b>Target:</b><br>",
5555
{
5656
{Target::regis, "regis", "Regirock/Regice/Registeel"},
57+
{Target::groudon, "groudon", "Groudon"},
58+
{Target::kyogre, "kyogre", "Kyogre"},
5759
{Target::hooh, "hooh", "Ho-Oh"},
5860
{Target::lugia, "lugia", "Lugia"},
5961
},
@@ -129,6 +131,98 @@ void LegendaryHuntEmerald::reset_regi(SingleSwitchProgramEnvironment& env, Switc
129131
//walk back up to the regi
130132
ssf_press_button(context, BUTTON_B, 0, 60);
131133
pbf_press_dpad(context, DPAD_UP, 60, 20);
134+
135+
context.wait_for_all_requests();
136+
}
137+
138+
void LegendaryHuntEmerald::reset_groudon(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context) {
139+
//Turn left. Take 10 steps.
140+
ssf_press_button(context, BUTTON_B, 0, 180);
141+
pbf_press_dpad(context, DPAD_LEFT, 180, 20);
142+
143+
//Turn up. Take 14 steps. (Bump into wall.)
144+
ssf_press_button(context, BUTTON_B, 0, 240);
145+
pbf_press_dpad(context, DPAD_UP, 240, 20);
146+
147+
//Turn right. Take 2 steps.
148+
ssf_press_button(context, BUTTON_B, 0, 40);
149+
pbf_press_dpad(context, DPAD_RIGHT, 40, 20);
150+
151+
//Turn up. Take 8 steps (Bump into wall.)
152+
ssf_press_button(context, BUTTON_B, 0, 140);
153+
pbf_press_dpad(context, DPAD_UP, 140, 20);
154+
155+
//Turn left. Take 4 steps.
156+
ssf_press_button(context, BUTTON_B, 0, 80);
157+
pbf_press_dpad(context, DPAD_LEFT, 80, 20);
158+
159+
//Turn down. Exit. Black screen over.
160+
BlackScreenOverWatcher exit_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
161+
int ret = run_until<SwitchControllerContext>(
162+
env.console, context,
163+
[](SwitchControllerContext& context){
164+
ssf_press_button(context, BUTTON_B, 0, 90);
165+
pbf_press_dpad(context, DPAD_DOWN, 90, 20);
166+
pbf_wait(context, 300);
167+
},
168+
{exit_area}
169+
);
170+
context.wait_for_all_requests();
171+
if (ret != 0){
172+
env.log("Failed to exit area.", COLOR_RED);
173+
OperationFailedException::fire(
174+
ErrorReport::SEND_ERROR_REPORT,
175+
"Failed to exit area.",
176+
env.console
177+
);
178+
}
179+
else {
180+
env.log("Left area.");
181+
}
182+
183+
//Reverse above steps.
184+
BlackScreenOverWatcher enter_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
185+
int ret2 = run_until<SwitchControllerContext>(
186+
env.console, context,
187+
[](SwitchControllerContext& context){
188+
ssf_press_button(context, BUTTON_B, 0, 90);
189+
pbf_press_dpad(context, DPAD_UP, 90, 20);
190+
pbf_wait(context, 300);
191+
},
192+
{enter_area}
193+
);
194+
context.wait_for_all_requests();
195+
if (ret2 != 0){
196+
env.log("Failed to enter area.", COLOR_RED);
197+
OperationFailedException::fire(
198+
ErrorReport::SEND_ERROR_REPORT,
199+
"Failed to enter area.",
200+
env.console
201+
);
202+
}
203+
else {
204+
env.log("Entered area.");
205+
}
206+
ssf_press_button(context, BUTTON_B, 0, 80);
207+
pbf_press_dpad(context, DPAD_RIGHT, 80, 20);
208+
209+
ssf_press_button(context, BUTTON_B, 0, 140);
210+
pbf_press_dpad(context, DPAD_DOWN, 140, 20);
211+
212+
ssf_press_button(context, BUTTON_B, 0, 40);
213+
pbf_press_dpad(context, DPAD_LEFT, 40, 20);
214+
215+
ssf_press_button(context, BUTTON_B, 0, 240);
216+
pbf_press_dpad(context, DPAD_DOWN, 240, 20);
217+
218+
ssf_press_button(context, BUTTON_B, 0, 180);
219+
pbf_press_dpad(context, DPAD_RIGHT, 180, 20);
220+
221+
context.wait_for_all_requests();
222+
}
223+
224+
void LegendaryHuntEmerald::reset_kyogre(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context) {
225+
132226
}
133227

134228
void LegendaryHuntEmerald::reset_hooh(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context) {
@@ -277,9 +371,17 @@ void LegendaryHuntEmerald::program(SingleSwitchProgramEnvironment& env, SwitchCo
277371
*/
278372

279373
while (true) {
280-
if (TARGET == Target::hooh) {
374+
switch (TARGET) {
375+
case Target::hooh:
281376
//Step forward to start the encounter.
282-
pbf_press_dpad(context, DPAD_UP, 10, 50);
377+
pbf_press_dpad(context, DPAD_UP, 20, 50);
378+
break;
379+
case Target::groudon:
380+
pbf_press_dpad(context, DPAD_RIGHT, 20, 50);
381+
break;
382+
case Target::kyogre:
383+
pbf_press_dpad(context, DPAD_LEFT, 20, 50);
384+
break;
283385
}
284386
//handle_encounter presses A already for everything else
285387

@@ -302,6 +404,11 @@ void LegendaryHuntEmerald::program(SingleSwitchProgramEnvironment& env, SwitchCo
302404
case Target::regis:
303405
reset_regi(env, context);
304406
break;
407+
case Target::groudon:
408+
reset_groudon(env, context);
409+
break;
410+
case Target::kyogre:
411+
reset_kyogre(env, context);
305412
case Target::hooh:
306413
reset_hooh(env, context);
307414
break;

SerialPrograms/Source/PokemonRSE/Programs/ShinyHunting/PokemonRSE_LegendaryHunt-Emerald.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ class LegendaryHuntEmerald : public SingleSwitchProgramInstance{
3131
private:
3232
enum class Target{
3333
regis,
34+
groudon,
35+
kyogre,
3436
hooh,
3537
lugia,
3638
};
@@ -41,6 +43,8 @@ class LegendaryHuntEmerald : public SingleSwitchProgramInstance{
4143
EventNotificationsOption NOTIFICATIONS;
4244

4345
void reset_regi(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context);
46+
void reset_groudon(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context);
47+
void reset_kyogre(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context);
4448
void reset_hooh(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context);
4549
void reset_lugia(SingleSwitchProgramEnvironment& env, SwitchControllerContext& context);
4650
};

0 commit comments

Comments
 (0)