Стабилизировать посадку на лифт уровня 10
This commit is contained in:
@@ -108,9 +108,9 @@ public final class LateLevelPlaythroughTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void masteryProcessionSurvivesThrottledFinalRelayDecisions() {
|
||||
public void masteryProcessionSurvivesThrottledFinalTraversalDecisions() {
|
||||
try (ActivityScenario<MainActivity> activity = ActivityScenario.launch(MainActivity.class)) {
|
||||
GameDriver driver = GameDriver.withFinalRelayDelay(activity, 96L);
|
||||
GameDriver driver = GameDriver.withFinalTraversalDelay(activity, 96L);
|
||||
|
||||
LevelPlaytestBot.Result result = new LevelPlaytestBot().run(
|
||||
driver,
|
||||
@@ -130,33 +130,33 @@ public final class LateLevelPlaythroughTest {
|
||||
private final Instrumentation instrumentation;
|
||||
private final GameView gameView;
|
||||
private final long minimumDecisionMillis;
|
||||
private final boolean throttleFinalRelayOnly;
|
||||
private final boolean throttleFinalTraversalOnly;
|
||||
private GameView.AutomationSnapshot lastSnapshot;
|
||||
|
||||
private GameDriver(Instrumentation instrumentation, GameView gameView,
|
||||
long minimumDecisionMillis, boolean throttleFinalRelayOnly) {
|
||||
long minimumDecisionMillis, boolean throttleFinalTraversalOnly) {
|
||||
this.instrumentation = instrumentation;
|
||||
this.gameView = gameView;
|
||||
this.minimumDecisionMillis = minimumDecisionMillis;
|
||||
this.throttleFinalRelayOnly = throttleFinalRelayOnly;
|
||||
this.throttleFinalTraversalOnly = throttleFinalTraversalOnly;
|
||||
}
|
||||
|
||||
static GameDriver from(ActivityScenario<MainActivity> activity) {
|
||||
return create(activity, 32L, false);
|
||||
}
|
||||
|
||||
static GameDriver withFinalRelayDelay(ActivityScenario<MainActivity> activity,
|
||||
long minimumDecisionMillis) {
|
||||
static GameDriver withFinalTraversalDelay(ActivityScenario<MainActivity> activity,
|
||||
long minimumDecisionMillis) {
|
||||
return create(activity, minimumDecisionMillis, true);
|
||||
}
|
||||
|
||||
private static GameDriver create(ActivityScenario<MainActivity> activity,
|
||||
long minimumDecisionMillis,
|
||||
boolean throttleFinalRelayOnly) {
|
||||
boolean throttleFinalTraversalOnly) {
|
||||
GameView[] view = new GameView[1];
|
||||
activity.onActivity(current -> view[0] = current.gameViewForAutomation());
|
||||
return new GameDriver(InstrumentationRegistry.getInstrumentation(), view[0],
|
||||
minimumDecisionMillis, throttleFinalRelayOnly);
|
||||
minimumDecisionMillis, throttleFinalTraversalOnly);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -182,15 +182,14 @@ public final class LateLevelPlaythroughTest {
|
||||
@Override
|
||||
public void waitForNextDecision(long millis) {
|
||||
try {
|
||||
boolean inFinalRelayWindow = throttleFinalRelayOnly
|
||||
boolean inFinalTraversalWindow = throttleFinalTraversalOnly
|
||||
&& lastSnapshot != null
|
||||
&& lastSnapshot.levelNumber() == 10
|
||||
&& lastSnapshot.deaths() == 3
|
||||
&& lastSnapshot.playerX() >= 1_200f
|
||||
&& lastSnapshot.playerX() <= 1_700f;
|
||||
Thread.sleep(inFinalRelayWindow
|
||||
? Math.max(millis, minimumDecisionMillis)
|
||||
: millis);
|
||||
&& lastSnapshot.playerX() <= 2_200f;
|
||||
Thread.sleep(inFinalTraversalWindow
|
||||
? Math.max(millis, minimumDecisionMillis) : millis);
|
||||
} catch (InterruptedException interrupted) {
|
||||
Thread.currentThread().interrupt();
|
||||
throw new AssertionError("Late-level bot interrupted", interrupted);
|
||||
|
||||
Reference in New Issue
Block a user