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..0d624e92 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,6 +4,7 @@ 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; @@ -11,6 +12,7 @@ import pp.mdga.message.server.PossibleCardMessage; import pp.mdga.message.server.PossiblePieceMessage; import pp.mdga.notification.SelectableCardsNotification; +import pp.mdga.visitor.Visitor; import java.util.ArrayList; import java.util.stream.Collectors; @@ -21,7 +23,7 @@ public class ChoosePowerCardState extends PowerCardStates { private final PowerCardState parent; - private ArrayList possibleCards; + private ArrayList possibleCards; /** * Constructor @@ -39,7 +41,6 @@ public ChoosePowerCardState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { possibleCards = new ArrayList<>(); - System.out.println("ChoosePowerCardState"); } /** @@ -56,8 +57,14 @@ public void exit() { */ @Override public void received(PossibleCardMessage msg){ - possibleCards = (ArrayList) msg.getPossibleCards(); - logic.addNotification(new SelectableCardsNotification(possibleCards)); + 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 +74,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 +86,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/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; }