merge the new developmentbranch into the test branch #39

Closed
j23f0712 wants to merge 431 commits from development2 into dev/test
173 changed files with 3827 additions and 1782 deletions
Showing only changes of commit 66dc9c02ea - Show all commits

View File

@@ -1,8 +1,20 @@
package pp.mdga.server.automaton.game.turn;
import pp.mdga.game.Piece;
import pp.mdga.game.card.PowerCard;
import pp.mdga.message.server.DiceNowMessage;
import pp.mdga.message.server.PossibleCardMessage;
import pp.mdga.server.ServerGameLogic;
import pp.mdga.server.automaton.game.AnimationState;
import pp.mdga.server.automaton.game.TurnState;
import pp.mdga.server.automaton.game.turn.powercard.ChoosePowerCardState;
import pp.mdga.server.automaton.game.turn.powercard.PowerCardAutomatonState;
import pp.mdga.server.automaton.game.turn.powercard.ShieldCardState;
import pp.mdga.server.automaton.game.turn.powercard.SwapCardState;
import pp.mdga.server.automaton.game.turn.powercard.TurboCardState;
import pp.mdga.visitor.ServerCardVisitor;
import java.util.HashSet;
import java.util.Set;
public class PowerCardState extends TurnAutomatonState {
/**
@@ -10,6 +22,22 @@ public class PowerCardState extends TurnAutomatonState {
*/
private static final System.Logger LOGGER = System.getLogger(PowerCardState.class.getName());
/**
* Create PowerCardState states.
*/
private PowerCardAutomatonState currentState;
private final ChoosePowerCardState choosePowerCardState;
private final ShieldCardState shieldCardState;
private final SwapCardState swapCardState;
private final TurboCardState turboCardState;
/**
* Create PowerCardState attributes.
*/
private ServerCardVisitor visitor;
private PowerCard selectedCard;
private final Set<Piece> selectedPieces = new HashSet<>();
/**
* Constructs a server state of the specified game logic.
*
@@ -18,15 +46,137 @@ public class PowerCardState extends TurnAutomatonState {
*/
public PowerCardState(TurnState turnAutomaton, ServerGameLogic logic) {
super(turnAutomaton, logic);
this.choosePowerCardState = new ChoosePowerCardState(this, logic);
this.shieldCardState = new ShieldCardState(this, logic);
this.swapCardState = new SwapCardState(this, logic);
this.turboCardState = new TurboCardState(this, logic);
this.setCurrentState(this.choosePowerCardState);
}
@Override
public void enter() {
LOGGER.log(System.Logger.Level.DEBUG, "Exited PowerCardState state.");
this.visitor = new ServerCardVisitor(this.turnAutomaton.getPlayer());
for (PowerCard card: this.turnAutomaton.getPlayer().getHandCards()) {
card.accept(this.visitor);
}
if (this.visitor.getCards().isEmpty()) {
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new DiceNowMessage());
this.turnAutomaton.setCurrentState(this.turnAutomaton.getRollDiceState());
} else {
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new PossibleCardMessage(this.visitor.getCards()));
}
}
@Override
public void exit() {
LOGGER.log(System.Logger.Level.DEBUG, "Entered PowerCardState state.");
}
/**
* This method will be used to add the given piece parameter to the selectedPieces attribute of PowerCardState
* class.
*
* @param piece as the new selected piece as a Piece object.
*/
public void addSelectedPiece(Piece piece) {
this.selectedPieces.add(piece);
}
/**
* This method will be used to return currentState attribute of PowerCardState class.
*
* @return currentState as a PowerCardAutomatonState object.
*/
public PowerCardAutomatonState getCurrentState() {
return this.currentState;
}
/**
* This method will be used to return choosePowerCardState attribute of PowerCardState class.
*
* @return choosePowerCardState as a ChoosePowerCardState object.
*/
public ChoosePowerCardState getChoosePowerCardState() {
return this.choosePowerCardState;
}
/**
* This method will be used to return shieldCardState attribute of PowerCardState class.
*
* @return shieldCardState as a ShieldCardState object.
*/
public ShieldCardState getShieldCardState() {
return this.shieldCardState;
}
/**
* This method will be used to return swapCardState attribute of PowerCardState class.
*
* @return swapCardState as a SwapCardState object.
*/
public SwapCardState getSwapCardState() {
return this.swapCardState;
}
/**
* This method will be used to return turboCardState attribute of PowerCardState class.
*
* @return turboCardState as a TurboCardState object.
*/
public TurboCardState getTurboCardState() {
return this.turboCardState;
}
/**
* This method will be used to return visitor attribute of PowerCardState class.
*
* @return visitor as a ServerCardVisitor object.
*/
public ServerCardVisitor getVisitor() {
return this.visitor;
}
/**
* This method will be used to return selectedPieces attribute of PowerCardState class.
*
* @return selectedCard as a PowerCard object.
*/
public PowerCard getSelectedCard() {
return this.selectedCard;
}
/**
* This method will be used to return selectedPieces attribute of PowerCardState class.
*
* @return selectedPieces as a Set of Piece objects.
*/
public Set<Piece> getSelectedPieces() {
return this.selectedPieces;
}
/**
* This method will be used to set currentState attribute of PowerCardState class to the given state parameter.
* In Addition, the currentState will be exited, changed and entered.
*
* @param state as the new currentState attribute as a PowerCardAutomatonState object.
*/
public void setCurrentState(PowerCardAutomatonState state) {
if (this.currentState != null) {
this.currentState.exit();
}
this.currentState = state;
this.currentState.enter();
}
/**
* This method will be used to set selectedCard attribute of PowerCardState class to the given selectedCard
* parameter.
*
* @param selectedCard as the new selectedCard attribute as a PowerCard object.
*/
public void setSelectedCard(PowerCard selectedCard) {
this.selectedCard = selectedCard;
}
}