Files
goon-game/app/src/main/java/com/projectsacrifice/game/OnboardingFlow.java
T

46 lines
1019 B
Java

package com.projectsacrifice.game;
/** Small state machine for the optional, first-run gameplay hints. */
public final class OnboardingFlow {
public enum Step {
MOVEMENT,
MULTITOUCH_JUMP,
CORPSES_ARE_TOOLS
}
private Step step;
private boolean complete;
private OnboardingFlow(boolean complete) {
this.complete = complete;
step = Step.MOVEMENT;
}
public static OnboardingFlow firstRun(boolean alreadyComplete) {
return new OnboardingFlow(alreadyComplete);
}
public boolean isVisible() {
return !complete;
}
public boolean isComplete() {
return complete;
}
public Step step() {
return step;
}
public void next() {
if (complete) return;
if (step == Step.MOVEMENT) step = Step.MULTITOUCH_JUMP;
else if (step == Step.MULTITOUCH_JUMP) step = Step.CORPSES_ARE_TOOLS;
else complete = true;
}
public void skip() {
complete = true;
}
}