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.drona.assets.Assets;
import com.digitalwolf.drona.screens.GameScreen;
import com.digitalwolf.drona.sprites.Drona;
import com.digitalwolf.drona.sprites.Weapon;
import com.moribitotech.mtx.ButtonGame;
import com.moribitotech.mtx.MenuCreator;
import com.moribitotech.mtx.models.base.TableModel;
import com.moribitotech.mtx.models.base.Text;
import com.moribitotech.mtx.settings.AppSettings;
public class DronaWeaponSelectScreenHelper implements ScreenHelper{
public TableModel weaponSelectTable;
private ButtonGame weapon1Button,weapon2Button,weapon3Button;
private Text selectionStatus;
private final float dipRatioWidth = 420*AppSettings.getWorldSizeRatio();
private final float dipRatioHeight = 120*AppSettings.getWorldSizeRatio();
@Override
public void setUpMenu(final GameScreen gameScreen) {
selectionStatus = new Text(Assets.whiteFont, dipRatioWidth, dipRatioHeight, true);
selectionStatus.setPosition(AppSettings.SCREEN_W/6, -selectionStatus.getHeight());
selectionStatus.setText("Select your Favourite Weapon");
gameScreen.getStage().addActor(selectionStatus);
weaponSelectTable = new TableModel(null,dipRatioWidth, dipRatioHeight);
weaponSelectTable.setPosition(250*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H + 1.2f*weaponSelectTable.getHeight());
weapon1Button = MenuCreator.createCustomGameButton(Assets.smallFont,
Assets.weapon1, Assets.weapon1);
weapon1Button.setTextPosXY(0, -10);
weapon1Button.setText("Fire Bowl", true);
weapon1Button.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
selectionStatus.setText("Current Selection : Fire Bowl");
sendAwayMenu(gameScreen);
Drona.setWeapon(Weapon.NORMAL);
setCurrentWeaponButtonTexture(gameScreen);
GameScreen.state = GameScreen.GAME_RUNNING;
}
});
weapon2Button = MenuCreator.createCustomGameButton(Assets.smallFont,
Assets.weapon2, Assets.weapon2);
weapon2Button.setTextPosXY(0, -10);
weapon2Button.setText("Red Flash", true);
weapon2Button.addListener(new ActorGestureListener() {
@Override
public void touchUp(InputEvent event, float x, float y,
int pointer, int button) {
super.touchUp(event, x, y, pointer, button);
sendAwayMenu(gameScreen);
selectionStatus.setText("Current Selection : Red Flash");
Drona.setWeapon(Weapon.MEDIUM);
setCurrentWeaponButtonTexture(gameScreen);
GameScreen.state = GameScreen.GAME_RUNNING;
}
});
weapon3Button = MenuCreator.createCustomGameButton(Assets.smallFont,
Assets.weapon3, Assets.weapon3);
weapon3Button.setTextPosXY(0, -10);
weapon3Button.setText("Power Shot", true);
weapon3Button.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.isSpecialPowerActive){
Drona.setWeapon(Weapon.LARGE);
setCurrentWeaponButtonTexture(gameScreen);
selectionStatus.setText("Current Selection : Power Shot");
sendAwayMenu(gameScreen);
GameScreen.state = GameScreen.GAME_RUNNING;
}
else{
selectionStatus.setText("Collect Divines to Unlock Power Shot");
}
}
});
weaponSelectTable.add(weapon1Button).size(dipRatioWidth/3, dipRatioWidth/3).center();
weaponSelectTable.add(weapon2Button).size(dipRatioWidth/3, dipRatioWidth/3).center();
weaponSelectTable.add(weapon3Button).size(dipRatioWidth/3, dipRatioWidth/3).center();
gameScreen.getStage().addActor(weaponSelectTable);
}
@Override
public void sendInMenu(final GameScreen gameScreen) {
GameScreen.state = GameScreen.GAME_PAUSED;
gameScreen.isPauseMenuDisplaying = true;
if(!GameScreen.isSpecialPowerActive){
weapon3Button.setExternalTextureActive(true);
weapon3Button.setTextureExternal(Assets.lock_icon, true);
weapon3Button.setTextureExternalPosXY(60, 0);
weapon3Button.setTextureExternalSize(dipRatioHeight/2,dipRatioHeight/2);
}
else{
weapon3Button.setExternalTextureActive(false);
}
weaponSelectTable.addAction(Actions.moveTo(250*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H - 2f*weaponSelectTable.getHeight(), 0.5f));
selectionStatus.addAction(Actions.moveTo(AppSettings.SCREEN_W/6,150*AppSettings.getWorldPositionYRatio(), 0.5f));
}
@Override
public void sendAwayMenu(GameScreen gameScreen) {
gameScreen.isPauseMenuDisplaying = false;
weaponSelectTable.addAction(Actions.moveTo(250*AppSettings.getWorldPositionXRatio(), AppSettings.SCREEN_H + 1.2f*weaponSelectTable.getHeight(), 0.5f));
selectionStatus.addAction(Actions.moveTo(AppSettings.SCREEN_W/6, -selectionStatus.getHeight(), 0.5f));
}
public void setCurrentWeaponButtonTexture(GameScreen gameScreen){
if(Drona.currentWeapon == Weapon.NORMAL){
gameScreen.gameAchievementMenuScreenHeper.weaponSelectButton.setTextureRegion(Assets.weapon1, true);
}
if(Drona.currentWeapon == Weapon.MEDIUM){
gameScreen.gameAchievementMenuScreenHeper.weaponSelectButton.setTextureRegion(Assets.weapon2, true);
}
if(Drona.currentWeapon == Weapon.LARGE){
gameScreen.gameAchievementMenuScreenHeper.weaponSelectButton.setTextureRegion(Assets.weapon3, true);
}
}
}