added a hashset to fix double checking of powercards in the visitor
This commit is contained in:
@@ -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<Piece> selectedPieces = new HashSet<>();
|
||||
private final Set<BonusCard> 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()) {
|
||||
|
||||
Reference in New Issue
Block a user