package com.digitalwolf.screenhelpers;
import com.badlogic.gdx.scenes.scene2d.InputEvent;
import com.badlogic.gdx.scenes.scene2d.actions.Actions;
import com.badlogic.gdx.scenes.scene2d.utils.ActorGestureListener;
import com.digitalwolf.assets.Assets;
import com.digitalwolf.gamedata.GameData;
import com.digitalwolf.screens.CongratsScreen;
import com.digitalwolf.screens.GameScreen;
import com.moribitotech.mtx.ButtonGame;
import com.moribitotech.mtx.MenuCreator;
import com.moribitotech.mtx.models.base.TableModel;
import com.moribitotech.mtx.settings.AppSettings;
public class GameScreenLevelEndMenu extends GameScreenAbstractMenu{
private TableModel levelCompletedMenuTable;
private ButtonGame infoButton, messageButton, okButton;
private ButtonGame creditsBar;
float dipRatioWidth = 80;
float dipRatioHeight = 70;
float padding = 5.0f * AppSettings.getWorldSizeRatio();
@Override
public void setUpMenu(final GameScreen gameScreen) {
//Set Up means create and add the required Actors/UI Widgets to the Screen
levelCompletedMenuTable = new TableModel(Assets.table_menu,
640*AppSettings.getWorldPositionXRatio(), 2*AppSettings.WORLD_HEIGHT/2.7f);
levelCompletedMenuTable.setPosition(180*AppSettings.getWorldPositionXRatio(), -levelCompletedMenuTable.getHeight());
gameScreen.getStage().addActor(levelCompletedMenuTable);
infoButton = MenuCreator.createCustomGameButton(Assets.bigFont,
Assets.nothing, Assets.nothing, dipRatioWidth*5f,dipRatioHeight, true);
infoButton.setTextPosXY(30*AppSettings.getWorldPositionXRatio(), 60*AppSettings.getWorldPositionYRatio());
messageButton = MenuCreator.createCustomGameButton(Assets.smallFont,
Assets.nothing, Assets.nothing, dipRatioWidth*5f,dipRatioHeight, true);
messageButton.setOrigin(messageButton.getWidth()/2, messageButton.getHeight()/2);
messageButton.setTextPosXY(30*AppSettings.getWorldPositionXRatio(), 60*AppSettings.getWorldPositionYRatio());
messageButton.setOrigin(0, 0);
creditsBar = MenuCreator.createCustomGameButton(Assets.smallFont,
Assets.health_bar, Assets.health_bar, dipRatioWidth*5.0f,dipRatioHeight/3, true);
creditsBar.setTextPosXY(20*AppSettings.getWorldPositionXRatio(), -10*AppSettings.getWorldPositionYRatio());
okButton = MenuCreator.createCustomGameButton(null,
Assets.right_button, Assets.right_button, dipRatioWidth, dipRatioWidth, true);
okButton.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
if(GameScreen.currentlevel < GameData.NUMBER_OF_LEVELS){
GameScreen.currentlevel++;
GameData.addToUnLockedLevel(GameScreen.currentlevel);
sendAwayMenu(gameScreen);
GameScreen.state = GameScreen.GAME_READY;
gameScreen.resetGame();
}
else{
gameScreen.getGame().setScreen(new CongratsScreen(gameScreen.getGame(), "Congrats Screen"));
}
}
});
levelCompletedMenuTable.add(infoButton).size(infoButton.getWidth(), infoButton.getHeight()).pad(padding);
levelCompletedMenuTable.row();
levelCompletedMenuTable.add(messageButton).size(messageButton.getWidth(), messageButton.getHeight()).pad(padding);
levelCompletedMenuTable.row();
levelCompletedMenuTable.add(creditsBar).size(creditsBar.getWidth(), creditsBar.getHeight()).pad(padding);
levelCompletedMenuTable.row();
levelCompletedMenuTable.add(okButton).size(okButton.getWidth(),okButton.getHeight()).pad(padding);
}
@Override
public void sendInMenu(GameScreen gameScreen) {
infoButton.setText("Level "+GameScreen.currentlevel+" Completed", true);
int stars = 0;
if(GameScreen.creditsPoint<70)
stars = 1;
if(GameScreen.creditsPoint>=70 && GameScreen.creditsPoint<90)
stars = 2;
if(GameScreen.creditsPoint>=90)
stars = 3;
GameData.addStarsToLevel(GameScreen.currentlevel, Math.min(3, stars));
messageButton.setText(""+GameScreen.scoreString, true);
creditsBar.setWidth((GameScreen.creditsPoint*4)*AppSettings.getWorldPositionXRatio());
creditsBar.setText(GameScreen.creditsPoint+" %", true);
levelCompletedMenuTable.addAction(Actions.moveTo(180*AppSettings.getWorldPositionXRatio(), 100*AppSettings.getWorldPositionYRatio(), 1.5f));
}
@Override
public void sendAwayMenu(GameScreen gameScreen) {
levelCompletedMenuTable.addAction(Actions.moveTo(180*AppSettings.getWorldPositionXRatio(),- levelCompletedMenuTable.getHeight(), 0.5f));
}
}