package com.me.missingwords.listeners; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.Touchable; import com.me.missingwords.MissingWords; import com.me.missingwords.buttons.ClueButton; /** * * Listener que procesa el evento al pulsar el bot�n "pista longitud". * */ public class LengthClueListener extends AbstractListener { private ClueButton button; public LengthClueListener(MissingWords missingWords, ClueButton button) { super(missingWords); this.button = button; } @Override public void clicked(InputEvent event, float x, float y) { missingWords.getGameScreen().getHuman().increaseCluesUsed(); if (missingWords.getGameScreen().getHuman().getCluesUsed() <= 2) { /* Reproducimos el efecto de sonido si est� activo */ missingWords.getSoundFX().getClue().play(missingWords.getSoundFX().getVolume()); /* Limpiamos el submitBox antes de generar las fichas de longitud */ if (missingWords.getGameScreen().getSubmitBox().hasChildren()) { missingWords.getGameScreen().getSubmitBox().clearChildren(); missingWords.getGameScreen().getSubmitBox().setNumActors(0); for (int i = 0; i < missingWords.getGameScreen().getOriginalTiles().size(); ++i) { missingWords.getGameScreen().getOriginalTiles().get(i).setVisible(true); } } /* Restablecemos el score */ missingWords.getGameScreen().getWordScore().setScore(0); /* Creamos las fichas de longitud */ missingWords.getGameScreen().getLengthBox().createLength(missingWords.getGameScreen().getAdaptedWordNPC().size()); /* Desactivamos el bot�n de "pista longitud" */ button.disableStyle(); button.setTouchable(Touchable.disabled); /* A�adimos las fichas al stage */ missingWords.getGameScreen().getStage().addActor(missingWords.getGameScreen().getLengthBox()); missingWords.getGameScreen().getStage().addActor(missingWords.getGameScreen().getSubmitBox()); /* Incrementamos el contador de pistas usadas */ missingWords.getStatsData().increaseCluesUsed(); /* Restamos las tiradas por usar pista (-2) */ missingWords.getGameScreen().getHuman().decreaseRolls(1); /* Actualizamos las penalizaciones */ missingWords.getGameScreen().getWordScore().increasePenalties(1); if (missingWords.getGameScreen().getHuman().getCluesUsed() == 2) { if (!button.isTouchable() && !missingWords.getGameScreen().getLetterClue().isTouchable()) { missingWords.getGameScreen().getTranslationClue().disableStyle(); missingWords.getGameScreen().getTranslationClue().setTouchable(Touchable.disabled); } else if (!button.isTouchable() && !missingWords.getGameScreen().getTranslationClue().isTouchable()) { missingWords.getGameScreen().getLetterClue().disableStyle(); missingWords.getGameScreen().getLetterClue().setTouchable(Touchable.disabled); } } } } }