diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PowerCardState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PowerCardState.java index f043d590..5d2fa745 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PowerCardState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/PowerCardState.java @@ -1,5 +1,6 @@ package pp.mdga.server.automaton.game.turn; +import pp.mdga.game.BonusCard; import pp.mdga.game.Piece; import pp.mdga.game.card.PowerCard; import pp.mdga.message.client.NoPowerCardMessage; @@ -40,6 +41,7 @@ public class PowerCardState extends TurnAutomatonState { private ServerCardVisitor visitor; private PowerCard selectedCard; private final Set selectedPieces = new HashSet<>(); + private final Set chekedCards = new HashSet<>(); /** * Constructs a server state of the specified game logic. @@ -53,15 +55,20 @@ public PowerCardState(TurnState turnAutomaton, ServerGameLogic logic) { this.shieldCardState = new ShieldCardState(this, logic); this.swapCardState = new SwapCardState(this, logic); this.turboCardState = new TurboCardState(this, logic); + } @Override public void enter() { + chekedCards.clear(); LOGGER.log(System.Logger.Level.INFO, "Enter PowerCardState state."); this.setCurrentState(this.choosePowerCardState); this.visitor = new ServerCardVisitor(this.logic); for (PowerCard card : this.turnAutomaton.getPlayer().getHandCards()) { - card.accept(this.visitor); + if (!chekedCards.contains(card.getCard())) { + chekedCards.add(card.getCard()); + card.accept(this.visitor); + } } if (this.visitor.getCards().isEmpty()) {