package com.jpii.navalbattle.game.turn; import com.jpii.navalbattle.game.StageManager; import com.jpii.navalbattle.gui.MainMenuWindow; import com.jpii.navalbattle.pavo.grid.Entity; public class TurnManager { Turn currentTurn; public int turnnumber; public byte playernumber; PlayerManager players; public TurnManager(PlayerManager pm){ players = pm; turnnumber=0; currentTurn = new Turn(players.getPlayer(turnnumber)); } public void nextTurn(){ currentTurn.endTurn(); turnnumber++; currentTurn = new Turn(players.getPlayer(turnnumber)); currentTurn.takeTurn(); if(currentTurn.isDone()){ nextTurn(); } } public Turn getTurn(){ return currentTurn; } public int getTurnNumber(){ return turnnumber; } public void addEntity(Entity e,Player p){ p.addEntity(e); } public Player getPlayer(int pos){ return players.getPlayer(pos-1); } public Player findPlayer(Entity b){ for(int index = 0; index<players.players.size(); index++){ if(players.players.get(index).myEntity(b)) return players.players.get(index); } return null; } public void removeEntity(Entity e){ for(int index = 0; index<players.players.size(); index++){ players.players.get(index).removeEntity(e); } } public void checkDone(){ boolean flag = false; StageManager sm = MainMenuWindow.spg.getStageManager(); for(int index = 0; index<players.players.size(); index++){ if(!flag){ flag = (!doesPlayerHaveEntities(players.getPlayer(index))); sm.checkForCompletion(flag,index); } if(!flag){ flag = (!doesPlayerHavePort(players.getPlayer(index))); sm.checkForCompletion(flag,index); } } } private boolean doesPlayerHaveEntities(Player p){ return p.ownsEntity(); } private boolean doesPlayerHavePort(Player p){ return p.ownsPort(); } }