diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java index 8829e43f..c65de787 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientGameLogic.java @@ -5,13 +5,13 @@ import pp.mdga.game.Color; import pp.mdga.game.Game; import pp.mdga.game.Piece; -import pp.mdga.game.PlayerData; import pp.mdga.message.client.ClientMessage; import pp.mdga.message.server.*; -import pp.mdga.notification.*; +import pp.mdga.notification.InfoNotification; +import pp.mdga.notification.Notification; +import pp.mdga.notification.StartDialogNotification; import java.util.ArrayList; -import java.util.Map; import java.util.UUID; /** @@ -52,20 +52,21 @@ public ClientGameLogic(ClientSender clientSender) { * * @param msg the message to be sent */ - public void send(ClientMessage msg){ + public void send(ClientMessage msg) { LOGGER.log(System.Logger.Level.INFO, "send {0}", msg); clientSender.send(msg); } /** * This method is used to get a piece by its id + * * @param pieceId the UUID of the piece * @return the piece */ - private Piece getPiece(UUID pieceId){ - for(Map.Entry entry : game.getBoard().getPlayerData().entrySet()){ - for(Piece piece : entry.getValue().getPieces()){ - if(piece.getUuid().equals(pieceId)){ + private Piece getPiece(UUID pieceId) { + for (var player : this.game.getPlayers().values()) { + for (Piece piece : player.getPieces()) { + if (piece.getUuid().equals(pieceId)) { return piece; } } @@ -78,7 +79,7 @@ private Piece getPiece(UUID pieceId){ * * @return the clientSender */ - public ClientSender getClientSender(){ + public ClientSender getClientSender() { return clientSender; } @@ -123,7 +124,7 @@ public void setOwnPlayerId(int ownPlayerId) { * * @return the game */ - public Game getGame(){ + public Game getGame() { return game; } @@ -132,7 +133,7 @@ public Game getGame(){ * * @return the current State */ - public ClientState getState(){ + public ClientState getState() { return state; } @@ -141,7 +142,7 @@ public ClientState getState(){ * * @return if the client is a host */ - public boolean isHost(){ + public boolean isHost() { return isHost; } @@ -150,7 +151,7 @@ public boolean isHost(){ * * @return the calculated moves as int */ - public int getCalculatedMoves(){ + public int getCalculatedMoves() { return game.getDiceEyes() * game.getDiceModifier(); } @@ -159,7 +160,7 @@ public int getCalculatedMoves(){ * * @param isHost the boolean value */ - public void setHost(boolean isHost){ + public void setHost(boolean isHost) { this.isHost = isHost; } @@ -480,14 +481,14 @@ public void received(SelectPieceMessage msg) { * * @param pieceId the pieceID */ - public void selectPiece(UUID pieceId){ + public void selectPiece(UUID pieceId) { state.selectPiece(getPiece(pieceId)); } /** * This method call the method selectNExt of the state */ - public void selectNext(){ + public void selectNext() { state.selectNext(); } @@ -496,7 +497,7 @@ public void selectNext(){ * * @param card the BonusCard to selected */ - public void selectCard(BonusCard card){ + public void selectCard(BonusCard card) { state.selectCard(card); } @@ -505,7 +506,7 @@ public void selectCard(BonusCard card){ * * @param color the Color to be selected */ - public void selectTsk(Color color){ + public void selectTsk(Color color) { state.selectTSK(color); } @@ -514,14 +515,14 @@ public void selectTsk(Color color){ * * @param color the color to be deselcted */ - public void deselectTSK(Color color){ + public void deselectTSK(Color color) { state.deselectTSK(color); } /** * This method calls the selectDice method of the state */ - public void selectDice(){ + public void selectDice() { state.selectDice(); } @@ -530,7 +531,7 @@ public void selectDice(){ * * @param name the name to be set */ - public void selectName(String name){ + public void selectName(String name) { state.setName(name); } @@ -539,8 +540,8 @@ public void selectName(String name){ * * @param ready the value if this method should ready or unready */ - public void selectReady(boolean ready){ - if(ready){ + public void selectReady(boolean ready) { + if (ready) { state.selectReady(); } else { state.selectUnready(); @@ -552,14 +553,14 @@ public void selectReady(boolean ready){ * * @param name the name of the player hosting */ - public void selectHost(String name){ + public void selectHost(String name) { state.selectHost(name); } /** * This method calls the selectLeave method of the state */ - public void selectLeave(){ + public void selectLeave() { state.selectLeave(); } @@ -568,28 +569,28 @@ public void selectLeave(){ * * @param ip the ip to cennect to */ - public void selectJoin(String ip){ + public void selectJoin(String ip) { state.selectJoin(ip); } /** * This method calls the selectAnimationEnd method of the state */ - public void selectAnimationEnd(){ + public void selectAnimationEnd() { state.selectAnimationEnd(); } /** * This method calls the selectStart method of the state */ - public void selectStart(){ + public void selectStart() { state.selectStart(); } /** * This method calls the selectResume method of the state */ - public void selectResume(){ + public void selectResume() { state.selectResume(); } @@ -598,7 +599,7 @@ public void selectResume(){ * * @param state the new state */ - public void setState(ClientState state){ + public void setState(ClientState state) { this.state.exit(); state.enter(); this.state = state; @@ -607,7 +608,7 @@ public void setState(ClientState state){ /** * This method is used to enter the interrupt state and save the previous state */ - public void enterInterrupt(){ + public void enterInterrupt() { interruptState.enter(); interruptState.setPreviousState(state); this.state = interruptState; @@ -618,7 +619,7 @@ public void enterInterrupt(){ * * @return the GameState */ - public GameState getGameState(){ + public GameState getGameState() { return gameState; } @@ -627,7 +628,7 @@ public GameState getGameState(){ * * @return the CeremonyState */ - public CeremonyState getCeremony(){ + public CeremonyState getCeremony() { return ceremonyState; } @@ -636,7 +637,7 @@ public CeremonyState getCeremony(){ * * @return the InterruptState */ - public InterruptState getInterrupt(){ + public InterruptState getInterrupt() { return interruptState; } @@ -645,7 +646,7 @@ public InterruptState getInterrupt(){ * * @return the DialogsState */ - public DialogsState getDialogs(){ + public DialogsState getDialogs() { return dialogsState; } @@ -654,7 +655,7 @@ public DialogsState getDialogs(){ * * @return the SettingsState */ - public SettingsState getSettings(){ + public SettingsState getSettings() { return settingsState; } @@ -663,8 +664,8 @@ public SettingsState getSettings(){ * * @return the next notification */ - public Notification getNotification(){ - if(!notifications.isEmpty()){ + public Notification getNotification() { + if (!notifications.isEmpty()) { return notifications.remove(0); } else { return null; @@ -676,7 +677,7 @@ public Notification getNotification(){ * * @param notification the notification to be added */ - public void addNotification(Notification notification){ + public void addNotification(Notification notification) { notifications.add(notification); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java index 06b97e13..25b54c88 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java @@ -5,17 +5,13 @@ import pp.mdga.client.DialogsState; import pp.mdga.game.Color; import pp.mdga.game.Piece; -import pp.mdga.game.Player; -import pp.mdga.game.PlayerData; import pp.mdga.message.client.*; -import pp.mdga.message.server.LobbyPlayerJoinedMessage; -import pp.mdga.message.server.LobbyPlayerLeaveMessage; -import pp.mdga.message.server.ServerStartGameMessage; -import pp.mdga.message.server.UpdateReadyMessage; -import pp.mdga.message.server.UpdateTSKMessage; +import pp.mdga.message.server.*; import pp.mdga.notification.*; -import java.util.*; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; public class LobbyState extends DialogStates { @@ -58,15 +54,15 @@ public void selectReady() { } @Override - public void selectUnready(){ + public void selectUnready() { logic.send(new LobbyNotReadyMessage()); } @Override - public void selectStart(){ - if(logic.isHost() && logic.getGame().areAllReady()){ + public void selectStart() { + if (logic.isHost() && logic.getGame().areAllReady()) { logic.send(new StartGameMessage(false)); - } else if(logic.isHost() && !logic.getGame().areAllReady()) { + } else if (logic.isHost() && !logic.getGame().areAllReady()) { logic.send(new StartGameMessage(true)); } else { LOGGER.log(System.Logger.Level.ERROR, "You are not the host"); @@ -74,25 +70,25 @@ public void selectStart(){ } @Override - public void received(ServerStartGameMessage msg){ + public void received(ServerStartGameMessage msg) { logic.getGame().setBoard(msg.getBoard()); logic.addNotification(new GameNotification(logic.getGame().getPlayerById(logic.getOwnPlayerId()).getColor())); - for (Map.Entry entry : logic.getGame().getPlayers().entrySet()) { + for (var player : logic.getGame().getPlayers().values()) { List pieces = new ArrayList<>(); - for (Piece piece : logic.getGame().getBoard().getPlayerData().get(entry.getValue().getColor()).getPieces()) { + for (Piece piece : player.getPieces()) { pieces.add(piece.getUuid()); } - logic.addNotification(new PlayerInGameNotification(entry.getValue().getColor(), pieces, entry.getValue().getName())); + logic.addNotification(new PlayerInGameNotification(player.getColor(), pieces, player.getName())); } logic.setState(logic.getGameState()); } @Override - public void received(LobbyPlayerJoinedMessage msg){ - if(msg.getPlayer().getName().equals(logic.getOwnPlayerName())){ + public void received(LobbyPlayerJoinedMessage msg) { + if (msg.getPlayer().getName().equals(logic.getOwnPlayerName())) { logic.setOwnPlayerId(msg.getId()); } - if (msg.isHost() && msg.getId() == logic.getOwnPlayerId()){ + if (msg.isHost() && msg.getId() == logic.getOwnPlayerId()) { logic.setHost(true); } @@ -101,9 +97,9 @@ public void received(LobbyPlayerJoinedMessage msg){ } @Override - public void received(UpdateTSKMessage msg){ - if(msg.isTaken()) { - logic.addNotification(new TskSelectNotification(msg.getColor(), logic.getGame().getPlayers().get(msg.getId()).getName(), logic.getOwnPlayerId()== msg.getId())); + public void received(UpdateTSKMessage msg) { + if (msg.isTaken()) { + logic.addNotification(new TskSelectNotification(msg.getColor(), logic.getGame().getPlayers().get(msg.getId()).getName(), logic.getOwnPlayerId() == msg.getId())); } else { logic.addNotification(new TskUnselectNotification(logic.getGame().getPlayers().get(msg.getId()).getColor())); } @@ -112,13 +108,13 @@ public void received(UpdateTSKMessage msg){ } @Override - public void received(LobbyPlayerLeaveMessage msg){ + public void received(LobbyPlayerLeaveMessage msg) { logic.addNotification(new TskUnselectNotification(logic.getGame().getPlayers().get(msg.getId()).getColor())); logic.getGame().getPlayers().remove(msg.getId()); } @Override - public void received(UpdateReadyMessage msg){ + public void received(UpdateReadyMessage msg) { //TODO server sendet kein update on UNready logic.addNotification(new LobbyReadyNotification(logic.getGame().getPlayers().get(msg.getPlayerId()).getColor(), msg.isReady())); logic.getGame().getPlayers().get(msg.getPlayerId()).setReady(msg.isReady()); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java index 5bb880d7..9bb07624 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/GameStates.java @@ -17,10 +17,10 @@ public GameStates(ClientState parent, ClientGameLogic logic) { super(parent, logic); } - protected void handlePowerCard(PlayCardMessage msg){ - if (msg.getCard().equals(BonusCard.TURBO)){ + protected void handlePowerCard(PlayCardMessage msg) { + if (msg.getCard().equals(BonusCard.TURBO)) { logic.getGame().setDiceModifier(msg.getDiceModifier()); - } else if (msg.getCard().equals(BonusCard.SHIELD)){ + } else if (msg.getCard().equals(BonusCard.SHIELD)) { if (logic.getGame().getBoard().getInfieldIndexOfPiece(logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier())) % 10 != 0) { logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).setShield(ShieldState.SUPPRESSED); logic.addNotification(new ShieldSuppressedNotification(logic.getGame().getPieceThroughUUID(msg.getPieceIdentifier()).getUuid())); @@ -36,12 +36,12 @@ protected void handlePowerCard(PlayCardMessage msg){ logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(enemyPiece)].setOccupant(ownPiece); logic.getGame().getBoard().getInfield()[ownIndex].setOccupant(enemyPiece); } - logic.getGame().getDiscardPile().add(logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).removeHandCard(msg.getCard())); + logic.getGame().getDiscardPile().add(msg.getCard()); } - protected void throwPiece(Piece piece){ + protected void throwPiece(Piece piece) { logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant(); - logic.getGame().getBoard().getPlayerData().get(piece.getColor()).addWaitingPiece(piece); + logic.getGame().getPlayerByColor(piece.getColor()).addWaitingPiece(piece); logic.addNotification(new ThrowPieceNotification(piece.getUuid())); logic.getGame().getPlayerByColor(piece.getColor()).getPlayerStatistic().increasePiecesBeingThrown(); logic.getGame().getGameStatistics().increasePiecesBeingThrown(); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java index 9a0cbd7d..a9c84d5c 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/SpectatorState.java @@ -5,7 +5,10 @@ import pp.mdga.client.GameState; import pp.mdga.game.Piece; import pp.mdga.message.server.*; -import pp.mdga.notification.*; +import pp.mdga.notification.ActivePlayerNotification; +import pp.mdga.notification.HomeMoveNotification; +import pp.mdga.notification.MovePieceNotification; +import pp.mdga.notification.PlayCardNotification; public class SpectatorState extends GameStates { @@ -27,15 +30,15 @@ public void exit() { } @Override - public void received(CeremonyMessage msg){ + public void received(CeremonyMessage msg) { logic.setState(logic.getCeremony()); } @Override - public void received(DieMessage msg){ + public void received(DieMessage msg) { logic.getGame().setDiceEyes(msg.getDiceEye()); // logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); - if(msg.getDiceEye() == 6){ + if (msg.getDiceEye() == 6) { logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6(); logic.getGame().getGameStatistics().increaseDiced6(); } @@ -43,7 +46,7 @@ public void received(DieMessage msg){ } @Override - public void received(PlayCardMessage msg){ + public void received(PlayCardMessage msg) { logic.addNotification(new PlayCardNotification(logic.getGame().getActiveColor(), msg.getCard())); handlePowerCard(msg); logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseCardsPlayed(); @@ -52,26 +55,26 @@ public void received(PlayCardMessage msg){ } @Override - public void received(ActivePlayerMessage msg){ + public void received(ActivePlayerMessage msg) { logic.addNotification(new ActivePlayerNotification(msg.getColor())); logic.getGame().setActiveColor(msg.getColor()); parent.setState(parent.getAnimation()); } @Override - public void received(MoveMessage msg){ + public void received(MoveMessage msg) { Piece pieceToMove = logic.getGame().getPieceThroughUUID(msg.getIdentifier()); - if (msg.isHomeMove()){ + if (msg.isHomeMove()) { logic.addNotification(new HomeMoveNotification(pieceToMove.getUuid(), msg.getTargetIndex())); logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)].clearOccupant(); - logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove); + logic.getGame().getPlayerByColor(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove); } else { if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isOccupied()) { throwPiece(logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant()); logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increasePiecesThrown(); logic.getGame().getGameStatistics().increasePiecesThrown(); } - if(logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)){ + if (logic.getGame().getPlayerByColor(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)) { logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), msg.getTargetIndex(), true)); logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove); } else { diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java index 0a2f72b0..365e4acf 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/WaitingState.java @@ -3,7 +3,8 @@ import pp.mdga.client.ClientGameLogic; import pp.mdga.client.ClientState; import pp.mdga.client.GameState; -import pp.mdga.game.*; +import pp.mdga.game.Piece; +import pp.mdga.game.PieceState; import pp.mdga.message.server.*; import pp.mdga.notification.*; @@ -27,21 +28,21 @@ public void exit() { } @Override - public void received(CeremonyMessage msg){ + public void received(CeremonyMessage msg) { logic.setState(logic.getCeremony()); } @Override - public void received(DiceNowMessage msg){ + public void received(DiceNowMessage msg) { logic.addNotification(new DiceNowNotification()); parent.setState(parent.getTurn()); } @Override - public void received(DieMessage msg){ + public void received(DieMessage msg) { logic.getGame().setDiceEyes(msg.getDiceEye()); // logic.addNotification(new RollDiceNotification(logic.getGame().getActiveColor(), logic.getGame().getDiceEyes(), logic.getGame().getDiceEyes() * logic.getGame().getDiceModifier())); - if(msg.getDiceEye() == 6){ + if (msg.getDiceEye() == 6) { logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseDiced6(); logic.getGame().getGameStatistics().increaseDiced6(); } @@ -49,7 +50,7 @@ public void received(DieMessage msg){ } @Override - public void received(PlayCardMessage msg){ + public void received(PlayCardMessage msg) { logic.addNotification(new PlayCardNotification(logic.getGame().getActiveColor(), msg.getCard())); handlePowerCard(msg); logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseCardsPlayed(); @@ -58,21 +59,21 @@ public void received(PlayCardMessage msg){ } @Override - public void received(ActivePlayerMessage msg){ + public void received(ActivePlayerMessage msg) { logic.addNotification(new ActivePlayerNotification(msg.getColor())); logic.getGame().setActiveColor(msg.getColor()); parent.setState(parent.getAnimation()); } @Override - public void received(MoveMessage msg){ + public void received(MoveMessage msg) { Piece pieceToMove = logic.getGame().getPieceThroughUUID(msg.getIdentifier()); - if (msg.isHomeMove()){ + if (msg.isHomeMove()) { logic.addNotification(new HomeMoveNotification(pieceToMove.getUuid(), msg.getTargetIndex())); logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)].clearOccupant(); - logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove); - for(int i = msg.getTargetIndex() + 1; i < 4; i++){ - if(!logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getHomeNodes()[i].isOccupied()){ + logic.getGame().getPlayerByColor(pieceToMove.getColor()).setPieceInHome(msg.getTargetIndex(), pieceToMove); + for (int i = msg.getTargetIndex() + 1; i < 4; i++) { + if (!logic.getGame().getPlayerByColor(pieceToMove.getColor()).getHomeNodes()[i].isOccupied()) { pieceToMove.setState(PieceState.HOME); break; } @@ -84,7 +85,7 @@ public void received(MoveMessage msg){ logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increasePiecesThrown(); logic.getGame().getGameStatistics().increasePiecesThrown(); } - if(logic.getGame().getBoard().getPlayerData().get(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)){ + if (logic.getGame().getPlayerByColor(pieceToMove.getColor()).getStartNodeIndex() == logic.getGame().getBoard().getInfieldIndexOfPiece(pieceToMove)) { logic.addNotification(new MovePieceNotification(pieceToMove.getUuid(), msg.getTargetIndex(), true)); logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(pieceToMove); } else { diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPieceState.java index 8c02d9de..bb88412e 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gameState/turnState/choosePieceState/SelectPieceState.java @@ -31,24 +31,24 @@ public void exit() { } - public void setPossiblePieces(ArrayList possiblePieces){ + public void setPossiblePieces(ArrayList possiblePieces) { this.possiblePieces = possiblePieces; } @Override - public void selectPiece(Piece piece){ - if(possiblePieces.contains(piece)){ + public void selectPiece(Piece piece) { + if (possiblePieces.contains(piece)) { logic.send(new SelectedPiecesMessage(piece.getUuid())); } } @Override - public void received(MoveMessage msg){ + public void received(MoveMessage msg) { Piece piece = logic.getGame().getPieceThroughUUID(msg.getIdentifier()); - if(msg.isHomeMove()){ + if (msg.isHomeMove()) { logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex())); logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant(); - logic.getGame().getBoard().getPlayerData().get(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece); + logic.getGame().getPlayerByColor(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece); } else { if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isOccupied()) { throwPiece(logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant()); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/PlayerData.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/PlayerData.java deleted file mode 100644 index 809b9d66..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/PlayerData.java +++ /dev/null @@ -1,197 +0,0 @@ -package pp.mdga.game; - -import com.jme3.network.serializing.Serializable; -import pp.mdga.Resources; - -/** - * This class is used to represent PlayerData related to the board - */ -@Serializable -public class PlayerData { - /** - * An array of HomeNode objects representing the home nodes of the player. - */ - private HomeNode[] homeNodes; - - /** - * The index of the start node for the player. - */ - private int startNodeIndex; - - /** - * An array of Piece objects representing the waiting area of the player. - */ - private Piece[] waitingArea; - - /** - * An array of Piece objects representing all the pieces of the player. - */ - private Piece[] pieces; - - /** - * This constructor is used to create a new PlayerData object - * - * @param color the color of the player - */ - public PlayerData(Color color) { - homeNodes = new HomeNode[Resources.MAX_PIECES]; - pieces = new Piece[Resources.MAX_PIECES]; - waitingArea = new Piece[Resources.MAX_PIECES]; - for (int i = 0; i < Resources.MAX_PIECES; i++) { - homeNodes[i] = new HomeNode(); - pieces[i] = new Piece(color, PieceState.WAITING); - waitingArea[i] = pieces[i]; - } - } - - /** - * Constructor. - */ - private PlayerData() { - homeNodes = new HomeNode[Resources.MAX_PIECES]; - waitingArea = new Piece[Resources.MAX_PIECES]; - pieces = new Piece[Resources.MAX_PIECES]; - } - - /** - * This method will be used to check if the player is finished. - * ToDo: Currently return always false. Implement logic! - * - * @return true or false. - */ - public boolean isFinished() { - return false; - } - - /** - * This method returns an Array of HomeNodes - * - * @return the array of HomeNodes - */ - public Node[] getHomeNodes() { - return homeNodes; - } - - /** - * This method returns the index of the StartNode - * - * @return the index of the StartNode - */ - public int getStartNodeIndex() { - return startNodeIndex; - } - - /** - * This method sets the index of the startNode. - * - * @param startNodeIndex the integer index of the startNode - */ - public void setStartNodeIndex(int startNodeIndex) { - this.startNodeIndex = startNodeIndex; - } - - /** - * This method returns an array pieces representing the waiting area. - * - * @return the waiting area - */ - public Piece[] getWaitingArea() { - return waitingArea; - } - - /** - * This method returns an array of pieces with all the players pieces - * - * @return the array of pieces - */ - public Piece[] getPieces() { - return pieces; - } - - /** - * This method adds a piece to the waiting area - * - * @param piece the piece to be added to the waiting area - */ - public void addWaitingPiece(Piece piece) { - for (int i = 0; i < Resources.MAX_PIECES; i++) { - if (waitingArea[i] == null) { - waitingArea[i] = piece; - return; - } - } - } - - /** - * This method removes a piece from the waiting area - * - * @return the piece that was removed from the waiting area - */ - public Piece removePieceFromWaitingArea() { - for (int i = 0; i < Resources.MAX_PIECES; i++) { - if (waitingArea[i] != null) { - Piece piece = waitingArea[i]; - waitingArea[i] = null; - return piece; - } - } - return null; - } - - /** - * This method sets a piece at the given index in the home area - * - * @param index the index of the node - * @param piece the piece to be set at the given index - */ - public void setPieceInHome(int index, Piece piece) { - homeNodes[index].setOccupant(piece); - } - - /** - * This method will be used to return if the given piece parameter is inside the homNodes attribute of PlayerData - * class. - * If yes it will return true, otherwise false. - * - * @return true or false. - */ - public boolean homeIncludes(Piece piece) { - for (Node node : this.homeNodes) { - if (node.getOccupant() == piece) { - return true; - } - } - - return false; - } - - /** - * This method will be used to return the index of the given piece parameter in the homeNodes attribute of - * PlayerData class. - * - * @return index as an Integer. - */ - public int getIndexInHome(Piece piece) { - for (int i = 0; i < Resources.MAX_PIECES; i++) { - if (homeNodes[i].getOccupant() == piece) { - return i; - } - } - return -1; - } - - /** - * This method will be usd to check if the waitingArea attribute of PlayerData class is empty. - * If yes it will return false, otherwise true. - * - * @return true or false. - */ - public boolean hasPieceInWaitingArea() { - for (Piece piece : waitingArea) { - if (piece != null) { - return true; - } - } - return false; - } -}