package com.arretadogames.pilot.tournaments; import com.arretadogames.pilot.entities.PlayerNumber; import com.arretadogames.pilot.game.Game; import com.arretadogames.pilot.game.GameState; import com.arretadogames.pilot.levels.LevelManager; import com.arretadogames.pilot.screens.PremiationScreen; import com.arretadogames.pilot.world.GameWorld; public class TournamentManager { private static TournamentManager tManager; private int winsNumberP1; private int winsNumberP2; private int p1TotalScore; private int p2TotalScore; private int currentLevel; private TournamentManager() { currentLevel = 0; winsNumberP1 = 0; winsNumberP2 = 0; p1TotalScore = 0; p2TotalScore = 0; } /** * Gets the only and single instance of Tournament * * @return TournamentManager */ public static TournamentManager getInstance() { if (tManager == null) tManager = new TournamentManager(); return tManager; } public void resetTournamentData(){ winsNumberP1 = 0; winsNumberP2 = 0; p1TotalScore = 0; p2TotalScore = 0; currentLevel = 0; } public int getWins(PlayerNumber pNumber){ switch (pNumber) { case ONE: return winsNumberP1; case TWO: return winsNumberP2; default: return 0; } } public void countWins(PlayerNumber pNumber) { switch (pNumber) { case ONE: winsNumberP1++; break; case TWO: winsNumberP2++; break; default: break; } } public void countScore(PlayerNumber pNumber, int score) { switch (pNumber) { case ONE: p1TotalScore += score; break; case TWO: p2TotalScore += score; break; default: break; } } public String getWinner(){ if (winsNumberP1 > winsNumberP2) { return "P1 wins!"; } else if (winsNumberP1 < winsNumberP2){ return "P2 wins!"; } else { return "P1 & P2 wins!"; } } /** * Change to the next Level of the tournament selected * * @return Returns true if has a next level */ public boolean nextLevel() { System.out.println("currentLevel: " + currentLevel); System.out.println("numberp1: " + winsNumberP1); System.out.println("numberp2: " + winsNumberP2); if ((winsNumberP1 == 4 || winsNumberP2 == 4) || (winsNumberP1 == 3 && winsNumberP2 == 3) || (currentLevel > 5)) { ((PremiationScreen) Game.getInstance().getScreen(GameState.PREMIATION)) .updateWinner(); Game.getInstance().goTo(GameState.PREMIATION); currentLevel = 0; return false; } if (currentLevel <= 5 ) { currentLevel++; ((GameWorld) Game.getInstance().getScreen(GameState.RUNNING_GAME)) .setLevel(LevelManager.getLevels().get(currentLevel)); return true; } return false; } }