package _main;
import game_timer.GameTimer;
import logger.Logger;
import map.Map;
import map.Map1;
import map.Map2;
/**
* A Game oszt�ly.
*A j�t�k ind�t�s��rt �s befejez�s��rt felel�s objektum. Ind�t�skor l�trehozza a Map oszt�lyt, befejez�skor pedig ki�rja, hogy a felhaszn�l� sikeresen teljes�tette-e a p�ly�t, vagy sem.
*/
public class Game {
/** Egy peldany a Map-rol */
private static Map m = null;
/** Egy referencia sajat magarol. */
private static Game instance = null;
/**
* Game konstruktora
*/
private Game() {
}
/**
* Amikor a j�t�kos vesz�t, ez a f�ggv�ny h�v�dik meg (game over).
*/
public void finishGame() {
Game.getInstance().getMap().getGraphics().setEndText("vesztett");
GameTimer.getInstance().stopTimer();
}
/**
* Amikor a j�t�kos nyer, ez a f�ggv�ny h�v�dik meg (nyert).
*/
public void youWin() {
Game.getInstance().getMap().getGraphics().setEndText("nyertel");
GameTimer.getInstance().stopTimer();
}
public static Game getInstance() {
if(instance == null){
instance = new Game();
instance.m = new Map1();
}
return instance;
}
/**
* A Singleton pattern miatt, b�rki k�v�lr�l megkaphatja a Game referenciajat.
* Parameterben beallithato, hogy melyik map toltodjon be(1-es vagy 2-es).
*
* @return Game oszt�lyt ad vissza
*/
public static Game getInstance(int selectedMap) {
if(instance == null){
instance = new Game();
}
if(selectedMap == 1){
instance.m = new Map1();
} else if(selectedMap == 2){
instance.m = new Map2();
} else {
System.out.println("1-es es 2-es map van!");
}
return instance;
}
/**
* Visszaadja az aktu�lis mapet.
*
* @return Map oszt�lyt ad vissza
*/
public Map getMap() {
return m;
}
/**
* Megadhat� az aktu�lis map.
*
* @param map a referencianak beallitani kivant palya
*/
public void setMap(Map map){
m = map;
}
}