package org.dieubware.etts.controller; import org.dieubware.etts.Observable; import org.dieubware.etts.Observer; import org.dieubware.etts.GameInterface; import org.dieubware.etts.model.GameModel; import org.dieubware.etts.model.Player; import org.dieubware.etts.view.GameScreen; import org.dieubware.etts.view.GameScreen.State; import com.badlogic.gdx.scenes.scene2d.actions.Actions; public class ModelObserver implements Observer { private GameScreen gameScreen; private GameInterface gameInterface; public ModelObserver(GameScreen gs, GameInterface gi) { this.gameScreen = gs; this.gameInterface = gi; } @Override public void update(Observable o, Object arg1) { GameModel p =(GameModel)o; if(p.isLost()) { p.saveScore(); gameScreen.playHitSound(); gameScreen.setState(State.LOST); gameScreen.getPlayerActor().setIddleAnimation(); gameScreen.getHud().setHighScore(p.getHighscore()); gameScreen.getHud().setLost(true); gameScreen.getLostImage().setVisible(true); gameScreen.playDeathAnimation(); } else{ gameInterface.setTestLevel(); p.resetScore(); gameScreen.getHud().setLost(false); } } }