Show a shutdown button upon death (closes #23), update to v0.6.1

This commit is contained in:
Lonami Exo 2017-07-08 11:32:39 +02:00
parent 6781e49998
commit cbb13f672f
12 changed files with 55 additions and 22 deletions

View file

@ -28,7 +28,7 @@ public class SkinLoader {
private static String[] ids = {
"play", "play_saved", "star", "stopwatch", "palette", "home", "replay",
"share", "sound_on", "sound_off", "snap_on", "snap_off", "issues", "credits",
"web", "back", "ok", "cancel"
"web", "back", "ok", "cancel", "power_off"
};
private static float bestMultiplier;

View file

@ -53,6 +53,7 @@ class PauseMenuStage extends Stage {
private final Band band;
private final BaseScorer scorer;
private final SoftButton playButton;
private final SoftButton customButton; // Customize & "Shut down"
//endregion
@ -98,22 +99,14 @@ class PauseMenuStage extends Stage {
table.row();
// Palette button (buy colors)
final SoftButton paletteButton = new SoftButton(1, "palette_texture");
table.add(paletteButton).space(16);
paletteButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
// Don't dispose because then it needs to take us to the previous screen
game.transitionTo(new CustomizeScreen(game, game.getScreen()), false);
}
});
// Palette button OR shutdown game (if game over)
customButton = new SoftButton(1, "palette_texture");
table.add(customButton).space(16);
customButton.addListener(customChangeListener);
// Continue playing OR share (if game over) button
playButton = new SoftButton(2, "play_texture");
table.add(playButton).space(16);
playButton.addListener(playChangeListener);
}
@ -139,6 +132,14 @@ class PauseMenuStage extends Stage {
scorer.resume();
}
private final ChangeListener customChangeListener = new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
// Don't dispose because then it needs to take us to the previous screen
game.transitionTo(new CustomizeScreen(game, game.getScreen()), false);
}
};
private final ChangeListener playChangeListener = new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
@ -166,13 +167,22 @@ class PauseMenuStage extends Stage {
}
void showGameOver(final String gameOverReason, final boolean timeMode) {
// Allow the players to exit the game (issue #23)
customButton.removeListener(customChangeListener);
customButton.updateImage("power_off_texture");
customButton.addListener(new ChangeListener() {
@Override
public void changed(ChangeEvent event, Actor actor) {
Gdx.app.exit();
}
});
if (game.shareChallenge != null) {
playButton.removeListener(playChangeListener);
playButton.updateImage("share_texture");
playButton.addListener(new ChangeListener() {
public void changed(ChangeEvent event, Actor actor) {
// Don't dispose because then it needs to take us to the previous screen
game.transitionTo(new ShareScoreScreen(
game, game.getScreen(), scorer.getCurrentScore(), timeMode), false);
}