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;
 | 
					package pp.mdga.server.automaton.game.turn;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import pp.mdga.game.BonusCard;
 | 
				
			||||||
import pp.mdga.game.Piece;
 | 
					import pp.mdga.game.Piece;
 | 
				
			||||||
import pp.mdga.game.card.PowerCard;
 | 
					import pp.mdga.game.card.PowerCard;
 | 
				
			||||||
import pp.mdga.message.client.NoPowerCardMessage;
 | 
					import pp.mdga.message.client.NoPowerCardMessage;
 | 
				
			||||||
@@ -40,6 +41,7 @@ public class PowerCardState extends TurnAutomatonState {
 | 
				
			|||||||
    private ServerCardVisitor visitor;
 | 
					    private ServerCardVisitor visitor;
 | 
				
			||||||
    private PowerCard selectedCard;
 | 
					    private PowerCard selectedCard;
 | 
				
			||||||
    private final Set<Piece> selectedPieces = new HashSet<>();
 | 
					    private final Set<Piece> selectedPieces = new HashSet<>();
 | 
				
			||||||
 | 
					    private final  Set<BonusCard> chekedCards = new HashSet<>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Constructs a server state of the specified game logic.
 | 
					     * 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.shieldCardState = new ShieldCardState(this, logic);
 | 
				
			||||||
        this.swapCardState = new SwapCardState(this, logic);
 | 
					        this.swapCardState = new SwapCardState(this, logic);
 | 
				
			||||||
        this.turboCardState = new TurboCardState(this, logic);
 | 
					        this.turboCardState = new TurboCardState(this, logic);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void enter() {
 | 
					    public void enter() {
 | 
				
			||||||
 | 
					        chekedCards.clear();
 | 
				
			||||||
        LOGGER.log(System.Logger.Level.INFO, "Enter PowerCardState state.");
 | 
					        LOGGER.log(System.Logger.Level.INFO, "Enter PowerCardState state.");
 | 
				
			||||||
        this.setCurrentState(this.choosePowerCardState);
 | 
					        this.setCurrentState(this.choosePowerCardState);
 | 
				
			||||||
        this.visitor = new ServerCardVisitor(this.logic);
 | 
					        this.visitor = new ServerCardVisitor(this.logic);
 | 
				
			||||||
        for (PowerCard card : this.turnAutomaton.getPlayer().getHandCards()) {
 | 
					        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()) {
 | 
					        if (this.visitor.getCards().isEmpty()) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user