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 letra adicional". * */ public class LetterClueListener extends AbstractListener { private ClueButton button; public LetterClueListener(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 dar la ficha adicional */ 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); } } /* A�adimos la letra adicional */ int index = missingWords.getGameScreen().getOriginalTiles().indexOf(missingWords.getGameScreen().getAdaptedWordNPC().get(0)); missingWords.getGameScreen().getOriginalTiles().get(index).setVisible(false); missingWords.getGameScreen().getCopyTiles().get(index).setSmallSize(); missingWords.getGameScreen().getSubmitBox().addActor(missingWords.getGameScreen().getCopyTiles().get(index)); missingWords.getGameScreen().getSubmitBox().increaseNumActors(); /* A�adimos el score */ missingWords.getGameScreen().getWordScore().setScore(missingWords.getGameScreen().getOriginalTiles().get(index).getPoints()); /* Desactivamos el bot�n de "pista letra adicional" */ button.disableStyle(); button.setTouchable(Touchable.disabled); /* Incrementamos el contador de pistas usadas */ missingWords.getStatsData().increaseCluesUsed(); /* Restamos las tiradas por usar pista (-1) */ missingWords.getGameScreen().getHuman().decreaseRolls(1); /* Actualizamos las penalizaciones */ missingWords.getGameScreen().getWordScore().increasePenalties(1); if (missingWords.getGameScreen().getHuman().getCluesUsed() == 2) { if (!button.isTouchable() && !missingWords.getGameScreen().getLengthClue().isTouchable()) { missingWords.getGameScreen().getTranslationClue().disableStyle(); missingWords.getGameScreen().getTranslationClue().setTouchable(Touchable.disabled); } else if (!button.isTouchable() && !missingWords.getGameScreen().getTranslationClue().isTouchable()) { missingWords.getGameScreen().getLengthClue().disableStyle(); missingWords.getGameScreen().getLengthClue().setTouchable(Touchable.disabled); } } } } }