Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -90,15 +90,15 @@ LegendaryRunAway::LegendaryRunAway()
LockMode::LOCK_WHILE_RUNNING,
"240 ms"
)
, LUGIA_UP_DOWN(
, LUGIA_UP_DOWN0(
"<b>Lugia up/down:</b><br>Time it takes to run up to Lugia or down away to reset.",
LockMode::LOCK_WHILE_RUNNING,
"600 ms"
"620 ms"
)
, LUGIA_LEFT_RIGHT(
, LUGIA_LEFT_RIGHT0(
"<b>Lugia left time:</b><br>Time it takes walk three steps left after entering Lugia's room.",
LockMode::LOCK_WHILE_RUNNING,
"550 ms"
"520 ms"
)
{
PA_ADD_STATIC(SHINY_REQUIRES_AUDIO);
Expand All @@ -109,21 +109,23 @@ LegendaryRunAway::LegendaryRunAway()
PA_ADD_STATIC(m_advanced_options);
PA_ADD_OPTION(HOOH_UP_DOWN);
PA_ADD_OPTION(HOOH_LEFT_RIGHT);
PA_ADD_OPTION(LUGIA_UP_DOWN);
PA_ADD_OPTION(LUGIA_LEFT_RIGHT);
PA_ADD_OPTION(LUGIA_UP_DOWN0);
PA_ADD_OPTION(LUGIA_LEFT_RIGHT0);
}

void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProControllerContext& context){
BlackScreenOverWatcher exit_area(COLOR_RED);
//Turn around, 10 steps down
ssf_press_button(context, BUTTON_B, 0ms, HOOH_UP_DOWN);
pbf_press_dpad(context, DPAD_DOWN, HOOH_UP_DOWN, 160ms);
pbf_press_dpad(context, DPAD_DOWN, HOOH_UP_DOWN, 0ms);
context.wait_for_all_requests();

//Turn right, take 1 step. Wait for black screen over.
int ret = run_until<ProControllerContext>(
env.console, context,
[&](ProControllerContext& context){
pbf_press_dpad(context, DPAD_RIGHT, HOOH_LEFT_RIGHT, 160ms);
ssf_press_button(context, BUTTON_B, 0ms, 500ms);
pbf_press_dpad(context, DPAD_RIGHT, 500ms, 0ms);
pbf_wait(context, 2400ms);
},
{exit_area}
Expand All @@ -149,6 +151,9 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro
int ret2 = run_until<ProControllerContext>(
env.console, context,
[&](ProControllerContext& context){
pbf_wait(context, 500ms);
context.wait_for_all_requests();

ssf_press_button(context, BUTTON_B, 0ms, 500ms);
pbf_press_dpad(context, DPAD_LEFT, 500ms, 0ms);
context.wait_for_all_requests();
Expand All @@ -174,6 +179,9 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro
"reset_hooh(): Entered area."
);
}
//Wait after loading in to zone
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//reverse above steps, but only take 9 steps up
//doesn't really matter since we want to trigger the encounter anyway
Expand All @@ -188,8 +196,9 @@ void LegendaryRunAway::reset_hooh(SingleSwitchProgramEnvironment& env, ProContro
void LegendaryRunAway::reset_lugia(SingleSwitchProgramEnvironment& env, ProControllerContext& context){
BlackScreenOverWatcher exit_area(COLOR_RED);
//Turn around, 5 steps down
ssf_press_button(context, BUTTON_B, 0ms, LUGIA_UP_DOWN);
pbf_press_dpad(context, DPAD_DOWN, LUGIA_UP_DOWN, 160ms);
ssf_press_button(context, BUTTON_B, 0ms, LUGIA_UP_DOWN0);
pbf_press_dpad(context, DPAD_DOWN, LUGIA_UP_DOWN0, 0ms);
context.wait_for_all_requests();

//Turn right, 3 steps right. Wait for black screen over.
int ret = run_until<ProControllerContext>(
Expand Down Expand Up @@ -222,8 +231,11 @@ void LegendaryRunAway::reset_lugia(SingleSwitchProgramEnvironment& env, ProContr
int ret2 = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
pbf_wait(context, 500ms);
context.wait_for_all_requests();

ssf_press_button(context, BUTTON_B, 0ms, 500ms);
pbf_press_dpad(context, DPAD_UP, 500ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 500ms, 0ms);
context.wait_for_all_requests();
ssf_press_button(context, BUTTON_B, 0ms, 500ms);
pbf_press_dpad(context, DPAD_DOWN, 500ms, 160ms);
Expand All @@ -246,14 +258,17 @@ void LegendaryRunAway::reset_lugia(SingleSwitchProgramEnvironment& env, ProContr
"reset_lugia(): Entered area."
);
}
//Wait after loading in to zone
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//reverse above steps
ssf_press_button(context, BUTTON_B, 0ms, LUGIA_LEFT_RIGHT);
pbf_press_dpad(context, DPAD_LEFT, LUGIA_LEFT_RIGHT, 160ms);
ssf_press_button(context, BUTTON_B, 0ms, LUGIA_LEFT_RIGHT0);
pbf_press_dpad(context, DPAD_LEFT, LUGIA_LEFT_RIGHT0, 0ms);
context.wait_for_all_requests();

ssf_press_button(context, BUTTON_B, 0ms, LUGIA_UP_DOWN);
pbf_press_dpad(context, DPAD_UP, LUGIA_UP_DOWN, 160ms);
ssf_press_button(context, BUTTON_B, 0ms, LUGIA_UP_DOWN0);
pbf_press_dpad(context, DPAD_UP, LUGIA_UP_DOWN0, 160ms);
context.wait_for_all_requests();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,8 +60,8 @@ class LegendaryRunAway : public SingleSwitchProgramInstance{
SectionDividerOption m_advanced_options;
MillisecondsOption HOOH_UP_DOWN;
MillisecondsOption HOOH_LEFT_RIGHT;
MillisecondsOption LUGIA_UP_DOWN;
MillisecondsOption LUGIA_LEFT_RIGHT;
MillisecondsOption LUGIA_UP_DOWN0;
MillisecondsOption LUGIA_LEFT_RIGHT0;
};

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,8 @@ void LegendaryHuntEmerald::reset_regi(SingleSwitchProgramEnvironment& env, ProCo
}else{
env.log("Entered area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//walk back up to the regi
ssf_press_button(context, BUTTON_B, 0ms, 480ms);
Expand All @@ -153,23 +155,23 @@ void LegendaryHuntEmerald::reset_groudon(SingleSwitchProgramEnvironment& env, Pr

//Turn left. Take 10 steps.
ssf_press_button(context, BUTTON_B, 0ms, 1440ms);
pbf_press_dpad(context, DPAD_LEFT, 1440ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 1440ms, 0ms);

//Turn up. Take 14 steps. (Bump into wall.)
ssf_press_button(context, BUTTON_B, 0ms, 1920ms);
pbf_press_dpad(context, DPAD_UP, 1920ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 1920ms, 0ms);

//Turn right. Take 2 steps.
ssf_press_button(context, BUTTON_B, 0ms, 320ms);
pbf_press_dpad(context, DPAD_RIGHT, 320ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 320ms, 0ms);

//Turn up. Take 8 steps (Bump into wall.)
ssf_press_button(context, BUTTON_B, 0ms, 1120ms);
pbf_press_dpad(context, DPAD_UP, 1120ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 1120ms, 0ms);

//Turn left. Take 4 steps.
ssf_press_button(context, BUTTON_B, 0ms, 640ms);
pbf_press_dpad(context, DPAD_LEFT, 640ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 640ms, 0ms);
context.wait_for_all_requests();

//Turn down. Exit. Black screen over.
Expand All @@ -178,7 +180,7 @@ void LegendaryHuntEmerald::reset_groudon(SingleSwitchProgramEnvironment& env, Pr
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_DOWN, 720ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 720ms, 0ms);
pbf_wait(context, 2400ms);
},
{exit_area}
Expand All @@ -196,14 +198,16 @@ void LegendaryHuntEmerald::reset_groudon(SingleSwitchProgramEnvironment& env, Pr
}else{
env.log("Left area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//Reverse above steps.
BlackScreenOverWatcher enter_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
int ret2 = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 0ms);
pbf_wait(context, 2400ms);
},
{enter_area}
Expand All @@ -221,6 +225,9 @@ void LegendaryHuntEmerald::reset_groudon(SingleSwitchProgramEnvironment& env, Pr
}else{
env.log("Entered area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

ssf_press_button(context, BUTTON_B, 0ms, 640ms);
pbf_press_dpad(context, DPAD_RIGHT, 640ms, 160ms);

Expand All @@ -244,27 +251,27 @@ void LegendaryHuntEmerald::reset_kyogre(SingleSwitchProgramEnvironment& env, Pro

//Turn down. Take 1 step.
ssf_press_button(context, BUTTON_B, 0ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 160ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 160ms, 0ms);

//Turn right. Take 9 steps.
ssf_press_button(context, BUTTON_B, 0ms, 1280ms);
pbf_press_dpad(context, DPAD_RIGHT, 1280ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 1280ms, 0ms);

//Turn up. 13 steps. Wall.
ssf_press_button(context, BUTTON_B, 0ms, 1760ms);
pbf_press_dpad(context, DPAD_UP, 1760ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 1760ms, 0ms);

//Turn left. 4 steps. Wall.
ssf_press_button(context, BUTTON_B, 0ms, 640ms);
pbf_press_dpad(context, DPAD_LEFT, 640ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 640ms, 0ms);

//Turn up. 10 steps.
ssf_press_button(context, BUTTON_B, 0ms, 1440ms);
pbf_press_dpad(context, DPAD_UP, 1440ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 1440ms, 0ms);

//Turn right. 6 steps.
ssf_press_button(context, BUTTON_B, 0ms, 880ms);
pbf_press_dpad(context, DPAD_RIGHT, 880ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 880ms, 0ms);

//Turn down. Exit. Black screen over.
BlackScreenOverWatcher exit_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
Expand All @@ -290,13 +297,15 @@ void LegendaryHuntEmerald::reset_kyogre(SingleSwitchProgramEnvironment& env, Pro
}else{
env.log("Left area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

BlackScreenOverWatcher enter_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
int ret2 = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 0ms);
pbf_wait(context, 2400ms);
},
{enter_area}
Expand All @@ -314,24 +323,26 @@ void LegendaryHuntEmerald::reset_kyogre(SingleSwitchProgramEnvironment& env, Pro
}else{
env.log("Entered area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

ssf_press_button(context, BUTTON_B, 0ms, 880ms);
pbf_press_dpad(context, DPAD_LEFT, 880ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 880ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 1440ms);
pbf_press_dpad(context, DPAD_DOWN, 1440ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 1440ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 640ms);
pbf_press_dpad(context, DPAD_RIGHT, 640ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 640ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 1760ms);
pbf_press_dpad(context, DPAD_DOWN, 1760ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 1760ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 1280ms);
pbf_press_dpad(context, DPAD_LEFT, 1280ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 1280ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 160ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 160ms, 0ms);

context.wait_for_all_requests();
}
Expand All @@ -342,14 +353,15 @@ void LegendaryHuntEmerald::reset_hooh(SingleSwitchProgramEnvironment& env, ProCo
BlackScreenOverWatcher exit_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
//Turn around, 10 steps down
ssf_press_button(context, BUTTON_B, 0ms, 1440ms);
pbf_press_dpad(context, DPAD_DOWN, 1440ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 1440ms, 0ms);
context.wait_for_all_requests();

//Turn right, take 1 step. Wait for black screen over.
int ret = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 240ms);
pbf_press_dpad(context, DPAD_RIGHT, 240ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 240ms, 0ms);
pbf_wait(context, 2400ms);
},
{exit_area}
Expand All @@ -367,17 +379,19 @@ void LegendaryHuntEmerald::reset_hooh(SingleSwitchProgramEnvironment& env, ProCo
}else{
env.log("Left area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

BlackScreenOverWatcher enter_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
//turn left, take one step. now turn back right and take a step. wait for black screen over.
int ret2 = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 320ms);
pbf_press_dpad(context, DPAD_LEFT, 320ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 320ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 320ms);
pbf_press_dpad(context, DPAD_RIGHT, 320ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 320ms, 0ms);
pbf_wait(context, 2400ms);
},
{enter_area}
Expand All @@ -395,6 +409,8 @@ void LegendaryHuntEmerald::reset_hooh(SingleSwitchProgramEnvironment& env, ProCo
}else{
env.log("Entered area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//reverse above steps, but only take 9 steps up
//doesn't really matter since we want to trigger the encounter anyway
Expand All @@ -413,14 +429,15 @@ void LegendaryHuntEmerald::reset_lugia(SingleSwitchProgramEnvironment& env, ProC
BlackScreenOverWatcher exit_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
//Turn around, 5 steps down
ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_DOWN, 720ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 720ms, 0ms);
context.wait_for_all_requests();

//Turn right, 3 steps right. Wait for black screen over.
int ret = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_RIGHT, 720ms, 160ms);
pbf_press_dpad(context, DPAD_RIGHT, 720ms, 0ms);
pbf_wait(context, 2400ms);
},
{exit_area}
Expand All @@ -438,17 +455,19 @@ void LegendaryHuntEmerald::reset_lugia(SingleSwitchProgramEnvironment& env, ProC
}else{
env.log("Left area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

BlackScreenOverWatcher enter_area(COLOR_RED, {0.282, 0.064, 0.448, 0.871});
//turn up, take one step. then turn back down and take a step. wait for black screen over.
int ret2 = run_until<ProControllerContext>(
env.console, context,
[](ProControllerContext& context){
ssf_press_button(context, BUTTON_B, 0ms, 320ms);
pbf_press_dpad(context, DPAD_UP, 320ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 320ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 320ms);
pbf_press_dpad(context, DPAD_DOWN, 320ms, 160ms);
pbf_press_dpad(context, DPAD_DOWN, 320ms, 0ms);
pbf_wait(context, 2400ms);
},
{enter_area}
Expand All @@ -466,13 +485,15 @@ void LegendaryHuntEmerald::reset_lugia(SingleSwitchProgramEnvironment& env, ProC
}else{
env.log("Entered area.");
}
pbf_wait(context, 500ms);
context.wait_for_all_requests();

//reverse above steps
ssf_press_button(context, BUTTON_B, 0ms, 560ms);
pbf_press_dpad(context, DPAD_LEFT, 560ms, 160ms);
pbf_press_dpad(context, DPAD_LEFT, 560ms, 0ms);

ssf_press_button(context, BUTTON_B, 0ms, 720ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 160ms);
pbf_press_dpad(context, DPAD_UP, 720ms, 0ms);

context.wait_for_all_requests();
}
Expand Down