diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java index 19c517e5..d7188e20 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/server/MdgaServer.java @@ -124,7 +124,7 @@ private void initializeSerializables() { Serializer.registerClass(NoTurnMessage.class); Serializer.registerClass(PauseGameMessage.class); Serializer.registerClass(PlayCardMessage.class); - Serializer.registerClass(PossibleCardMessage.class); + Serializer.registerClass(PossibleCardsMessage.class); Serializer.registerClass(PossiblePieceMessage.class); Serializer.registerClass(RankingResponseMessage.class); Serializer.registerClass(RankingRollAgainMessage.class); 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 02b5ff76..391e7c01 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 @@ -330,7 +330,7 @@ public void received(PlayCardMessage msg) { * @param msg the PossibleCard message received */ @Override - public void received(PossibleCardMessage msg) { + public void received(PossibleCardsMessage msg) { state.received(msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java index 998ea5a7..c81e56d6 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/ClientState.java @@ -116,7 +116,7 @@ public void received(PlayCardMessage msg) { } @Override - public void received(PossibleCardMessage msg) { + public void received(PossibleCardsMessage msg) { LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg.toString()); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java index fbfc0e57..be38d370 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java @@ -241,7 +241,7 @@ public void received(DiceAgainMessage msg){ * @param msg the message to be received */ @Override - public void received(PossibleCardMessage msg){ + public void received(PossibleCardsMessage msg){ state.received(msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java index 9c27854d..db28af7a 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java @@ -108,7 +108,7 @@ public void received(DiceAgainMessage msg){ } @Override - public void received(PossibleCardMessage msg){ + public void received(PossibleCardsMessage msg){ state.received(msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/PowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/PowerCardState.java index 85a977d5..1a8a05a7 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/PowerCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/PowerCardState.java @@ -11,7 +11,7 @@ import pp.mdga.game.Piece; import pp.mdga.message.server.DiceNowMessage; import pp.mdga.message.server.PlayCardMessage; -import pp.mdga.message.server.PossibleCardMessage; +import pp.mdga.message.server.PossibleCardsMessage; import pp.mdga.message.server.PossiblePieceMessage; public class PowerCardState extends TurnStates { @@ -48,7 +48,7 @@ public void setState(PowerCardStates state) { } @Override - public void received(PossibleCardMessage msg){ + public void received(PossibleCardsMessage msg){ state.received(msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java index a17b01f7..11213b58 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/ChoosePowerCardState.java @@ -4,11 +4,12 @@ import pp.mdga.client.ClientState; import pp.mdga.client.gamestate.turnstate.PowerCardState; import pp.mdga.game.BonusCard; +import pp.mdga.game.card.*; import pp.mdga.message.client.NoPowerCardMessage; import pp.mdga.message.client.SelectCardMessage; import pp.mdga.message.server.DiceNowMessage; import pp.mdga.message.server.PlayCardMessage; -import pp.mdga.message.server.PossibleCardMessage; +import pp.mdga.message.server.PossibleCardsMessage; import pp.mdga.message.server.PossiblePieceMessage; import pp.mdga.notification.SelectableCardsNotification; @@ -21,7 +22,7 @@ public class ChoosePowerCardState extends PowerCardStates { private final PowerCardState parent; - private ArrayList possibleCards; + private ArrayList possibleCards; /** * Constructor @@ -39,7 +40,6 @@ public ChoosePowerCardState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { possibleCards = new ArrayList<>(); - System.out.println("ChoosePowerCardState"); } /** @@ -55,9 +55,15 @@ public void exit() { * @param msg possible cards message */ @Override - public void received(PossibleCardMessage msg){ - possibleCards = (ArrayList) msg.getPossibleCards(); - logic.addNotification(new SelectableCardsNotification(possibleCards)); + public void received(PossibleCardsMessage msg){ + possibleCards = (ArrayList)msg.getPossibleCards(); + ArrayList possibleBonusCards = new ArrayList<>(); + for (PowerCard card : possibleCards) { + if (!possibleBonusCards.contains(card.getCard())) { + possibleBonusCards.add(card.getCard()); + } + } + logic.addNotification(new SelectableCardsNotification(possibleBonusCards)); } /** @@ -67,7 +73,7 @@ public void received(PossibleCardMessage msg){ @Override public void selectCard(BonusCard card){ if(card != null){ - logic.send(new SelectCardMessage(card)); + logic.send(new SelectCardMessage(logic.getGame().getPlayers().get(logic.getOwnPlayerId()).getPowerCardByType(card))); } else { logic.send(new NoPowerCardMessage()); } @@ -79,11 +85,6 @@ public void selectCard(BonusCard card){ */ @Override public void received(PlayCardMessage msg){ - if(msg.getCard().equals(BonusCard.TURBO)){ - logic.getGame().setDiceModifier(msg.getDiceModifier()); - } else { - LOGGER.log(System.Logger.Level.ERROR, "Received card that is not turbo"); - } } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java index 987648ce..16a181d9 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Player.java @@ -137,6 +137,21 @@ public boolean isFinished() { return true; } + /** + * This method returns a PowerCard based on its Type. + * + * @param bonusCard the card Type to be matched + * @return the first PowerCard of this type + */ + public PowerCard getPowerCardByType(BonusCard bonusCard) { + for (PowerCard card : this.handCards) { + if(card.getCard().equals(bonusCard)) { + return card; + } + } + return null; + } + /** * This method returns the give name of the Player * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/SelectCardMessage.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/SelectCardMessage.java index edf6804d..53389d30 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/client/SelectCardMessage.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/client/SelectCardMessage.java @@ -2,6 +2,7 @@ import com.jme3.network.serializing.Serializable; import pp.mdga.game.BonusCard; +import pp.mdga.game.card.PowerCard; /** * A message sent from the client to the server to select a bonus card. @@ -11,14 +12,14 @@ public class SelectCardMessage extends ClientMessage { /** * The bonus card to be selected. */ - private final BonusCard card; + private final PowerCard card; /** * Constructs a new SelectCard instance. * - * @param card the bonus card to be selected + * @param card the power card to be selected */ - public SelectCardMessage(BonusCard card) { + public SelectCardMessage(PowerCard card) { this.card = card; } @@ -30,11 +31,11 @@ private SelectCardMessage() { } /** - * Gets the bonus card associated with this selection. + * Gets the power card associated with this selection. * - * @return the bonus card + * @return the power card */ - public BonusCard getCard() { + public PowerCard getCard() { return card; } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardMessage.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardsMessage.java similarity index 90% rename from Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardMessage.java rename to Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardsMessage.java index 85b58682..bfd9b440 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardMessage.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/PossibleCardsMessage.java @@ -10,7 +10,7 @@ * A message sent by the server to the client to indicate the possible cards that can be chosen. */ @Serializable -public class PossibleCardMessage extends ServerMessage { +public class PossibleCardsMessage extends ServerMessage { /** * The list of possible cards. */ @@ -19,7 +19,7 @@ public class PossibleCardMessage extends ServerMessage { /** * Constructor for a PossibleCard instance. */ - public PossibleCardMessage() { + public PossibleCardsMessage() { super(); possibleCards = new ArrayList<>(); } @@ -29,7 +29,7 @@ public PossibleCardMessage() { * * @param possibleCards as the list of possible power cards as a List of PowerCard objects. */ - public PossibleCardMessage(List possibleCards) { + public PossibleCardsMessage(List possibleCards) { this.possibleCards = possibleCards; } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java index 67dcf802..6a9b0ddd 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/ServerInterpreter.java @@ -122,7 +122,7 @@ public interface ServerInterpreter { * * @param msg the PossibleCard message received */ - void received(PossibleCardMessage msg); + void received(PossibleCardsMessage msg); /** * Handles a PossiblePiece message received from the server.