You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
2.6 KiB
95 lines
2.6 KiB
package mightypork.rogue.screens.game;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import mightypork.gamecore.gui.Action;
|
|
import mightypork.gamecore.gui.AlignX;
|
|
import mightypork.gamecore.gui.components.layout.ColumnLayout;
|
|
import mightypork.gamecore.gui.components.layout.RowLayout;
|
|
import mightypork.gamecore.gui.components.painters.ImagePainter;
|
|
import mightypork.gamecore.gui.components.painters.QuadPainter;
|
|
import mightypork.gamecore.gui.components.painters.TextPainter;
|
|
import mightypork.gamecore.gui.screens.ScreenLayer;
|
|
import mightypork.gamecore.logging.Log;
|
|
import mightypork.gamecore.resources.fonts.GLFont;
|
|
import mightypork.gamecore.util.math.color.pal.RGB;
|
|
import mightypork.gamecore.util.math.constraints.num.Num;
|
|
import mightypork.rogue.GameStateManager.GameState;
|
|
import mightypork.rogue.Res;
|
|
import mightypork.rogue.events.GameStateRequest;
|
|
import mightypork.rogue.screens.PushButton;
|
|
import mightypork.rogue.screens.game.ScreenGame.GScrState;
|
|
import mightypork.rogue.world.WorldProvider;
|
|
|
|
|
|
public class DeathLayer extends ScreenLayer {
|
|
|
|
public DeathLayer(final ScreenGame screen)
|
|
{
|
|
super(screen);
|
|
|
|
// darker down to cover console.
|
|
final QuadPainter qp = new QuadPainter(RGB.BLACK_80);
|
|
qp.setRect(root);
|
|
root.add(qp);
|
|
|
|
final GLFont thick_font = Res.getFont("thick");
|
|
|
|
final RowLayout rl = new RowLayout(root, 5);
|
|
rl.setRect(root.shrink(Num.ZERO, root.height().perc(20)));
|
|
root.add(rl);
|
|
|
|
final TextPainter txp = new TextPainter(thick_font, AlignX.CENTER, RGB.YELLOW, "You're dead!");
|
|
rl.add(txp, 1);
|
|
txp.setPaddingHPerc(0, 15);
|
|
|
|
final ImagePainter img = new ImagePainter(Res.getTxQuad("death"));
|
|
img.keepAspectRatio();
|
|
rl.add(img, 3);
|
|
|
|
final ColumnLayout cl = new ColumnLayout(root, 2);
|
|
rl.add(cl);
|
|
|
|
final PushButton btn1 = new PushButton(thick_font, "Retry", ScreenGame.COLOR_BTN_GOOD);
|
|
btn1.textPainter.setAlign(AlignX.RIGHT);
|
|
btn1.textPainter.setPaddingHPerc(20, 25);
|
|
cl.add(btn1);
|
|
|
|
final PushButton btn2 = new PushButton(thick_font, "Quit", ScreenGame.COLOR_BTN_BAD);
|
|
btn2.textPainter.setAlign(AlignX.LEFT);
|
|
btn2.textPainter.setPaddingHPerc(20, 25);
|
|
cl.add(btn2);
|
|
|
|
btn1.setAction(new Action() {
|
|
|
|
@Override
|
|
protected void execute()
|
|
{
|
|
try {
|
|
WorldProvider.get().loadWorld(WorldProvider.get().getWorld().getSaveFile());
|
|
screen.setState(GScrState.WORLD);
|
|
} catch (final IOException e) {
|
|
Log.e(e);
|
|
}
|
|
}
|
|
});
|
|
|
|
btn2.setAction(new Action() {
|
|
|
|
@Override
|
|
protected void execute()
|
|
{
|
|
getEventBus().send(new GameStateRequest(GameState.MAIN_MENU));
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
@Override
|
|
public int getZIndex()
|
|
{
|
|
return 300;
|
|
}
|
|
|
|
}
|
|
|