Merge branch 'development2' of https://athene2.informatik.unibw-muenchen.de/progproj/gruppen-ht24/Gruppe-01 into development2
This commit is contained in:
@@ -175,7 +175,6 @@ private void handleGame(Notification notification) {
|
|||||||
if(n.getCard() == BonusCard.TURBO) {
|
if(n.getCard() == BonusCard.TURBO) {
|
||||||
guiHandler.turbo();
|
guiHandler.turbo();
|
||||||
app.getModelSynchronize().animationEnd();
|
app.getModelSynchronize().animationEnd();
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if(n.getColor() == ownColor) guiHandler.playCardOwn(n.getCard());
|
if(n.getColor() == ownColor) guiHandler.playCardOwn(n.getCard());
|
||||||
|
|||||||
@@ -92,9 +92,9 @@ public Game() {
|
|||||||
* This method initializes the draw pile with the predefined number of bonus cards.
|
* This method initializes the draw pile with the predefined number of bonus cards.
|
||||||
*/
|
*/
|
||||||
private void initializeDrawPile() {
|
private void initializeDrawPile() {
|
||||||
// this.addBonusCards(new TurboCard(), AMOUNT_OF_TURBO_CARDS);
|
this.addBonusCards(new TurboCard(), AMOUNT_OF_TURBO_CARDS);
|
||||||
// this.addBonusCards(new SwapCard(), AMOUNT_OF_SWAP_CARDS);
|
// this.addBonusCards(new SwapCard(), AMOUNT_OF_SWAP_CARDS);
|
||||||
this.addBonusCards(new ShieldCard(), AMOUNT_OF_SHIELD_CARDS);
|
// this.addBonusCards(new ShieldCard(), AMOUNT_OF_SHIELD_CARDS);
|
||||||
Collections.shuffle(this.drawPile);
|
Collections.shuffle(this.drawPile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ public class RollDiceState extends TurnAutomatonState {
|
|||||||
private final FirstRollState firstRollState;
|
private final FirstRollState firstRollState;
|
||||||
private final SecondRollState secondRollState;
|
private final SecondRollState secondRollState;
|
||||||
private final ThirdRollState thirdRollState;
|
private final ThirdRollState thirdRollState;
|
||||||
|
private boolean resetModifier = true;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructs a server state of the specified game logic.
|
* Constructs a server state of the specified game logic.
|
||||||
@@ -39,12 +40,16 @@ public RollDiceState(TurnState turnAutomaton, ServerGameLogic logic) {
|
|||||||
@Override
|
@Override
|
||||||
public void enter() {
|
public void enter() {
|
||||||
LOGGER.log(System.Logger.Level.DEBUG, "Entered RollDiceState state.");
|
LOGGER.log(System.Logger.Level.DEBUG, "Entered RollDiceState state.");
|
||||||
|
if (resetModifier){
|
||||||
|
logic.getGame().setDiceModifier(1);
|
||||||
|
}
|
||||||
this.setCurrentState(this.firstRollState);
|
this.setCurrentState(this.firstRollState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void exit() {
|
public void exit() {
|
||||||
LOGGER.log(System.Logger.Level.DEBUG, "Exited RollDiceState state.");
|
LOGGER.log(System.Logger.Level.DEBUG, "Exited RollDiceState state.");
|
||||||
|
resetModifier = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,6 +78,10 @@ public RollDiceAutomatonState getCurrentState() {
|
|||||||
return this.currentState;
|
return this.currentState;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setResetModifier(boolean resetModifier) {
|
||||||
|
this.resetModifier = resetModifier;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method will be used to return firstRollState attribute of RollDiceState class.
|
* This method will be used to return firstRollState attribute of RollDiceState class.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -64,6 +64,9 @@ private boolean canInfieldMove(Piece piece, int steps){
|
|||||||
int moveIndex = (pieceIndex + steps) % logic.getGame().getBoard().getInfield().length;
|
int moveIndex = (pieceIndex + steps) % logic.getGame().getBoard().getInfield().length;
|
||||||
Piece occupant = logic.getGame().getBoard().getInfield()[moveIndex].getOccupant();
|
Piece occupant = logic.getGame().getBoard().getInfield()[moveIndex].getOccupant();
|
||||||
if (occupant != null){
|
if (occupant != null){
|
||||||
|
if (occupant.isShielded()){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return occupant.getColor() != piece.getColor();
|
return occupant.getColor() != piece.getColor();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
package pp.mdga.server.automaton.game.turn.choosepiece;
|
package pp.mdga.server.automaton.game.turn.choosepiece;
|
||||||
|
|
||||||
import pp.mdga.game.Node;
|
import pp.mdga.game.*;
|
||||||
import pp.mdga.game.Piece;
|
import pp.mdga.game.card.HiddenCard;
|
||||||
import pp.mdga.game.PieceState;
|
|
||||||
import pp.mdga.game.ShieldState;
|
|
||||||
import pp.mdga.message.client.RequestMoveMessage;
|
import pp.mdga.message.client.RequestMoveMessage;
|
||||||
|
import pp.mdga.message.server.DrawCardMessage;
|
||||||
import pp.mdga.message.server.MoveMessage;
|
import pp.mdga.message.server.MoveMessage;
|
||||||
import pp.mdga.message.server.SelectPieceMessage;
|
import pp.mdga.message.server.SelectPieceMessage;
|
||||||
import pp.mdga.server.ServerGameLogic;
|
import pp.mdga.server.ServerGameLogic;
|
||||||
@@ -82,6 +81,17 @@ public void received(RequestMoveMessage msg, int from){
|
|||||||
movePiece.setShield(ShieldState.NONE);
|
movePiece.setShield(ShieldState.NONE);
|
||||||
} else {
|
} else {
|
||||||
Node targetNode = logic.getGame().getBoard().getInfield()[targIdx];
|
Node targetNode = logic.getGame().getBoard().getInfield()[targIdx];
|
||||||
|
|
||||||
|
if(targetNode.isBonus()) {
|
||||||
|
for (Player p : logic.getGame().getPlayersAsList()) {
|
||||||
|
if(p.isActive()) {
|
||||||
|
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(logic.getGame().draw()));
|
||||||
|
} else {
|
||||||
|
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Piece occ = targetNode.getOccupant();
|
Piece occ = targetNode.getOccupant();
|
||||||
if (occ != null) {
|
if (occ != null) {
|
||||||
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ);
|
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ);
|
||||||
|
|||||||
@@ -2,7 +2,10 @@
|
|||||||
|
|
||||||
import pp.mdga.game.Node;
|
import pp.mdga.game.Node;
|
||||||
import pp.mdga.game.Piece;
|
import pp.mdga.game.Piece;
|
||||||
|
import pp.mdga.game.Player;
|
||||||
|
import pp.mdga.game.card.HiddenCard;
|
||||||
import pp.mdga.message.client.RequestMoveMessage;
|
import pp.mdga.message.client.RequestMoveMessage;
|
||||||
|
import pp.mdga.message.server.DrawCardMessage;
|
||||||
import pp.mdga.message.server.MoveMessage;
|
import pp.mdga.message.server.MoveMessage;
|
||||||
import pp.mdga.message.server.StartPieceMessage;
|
import pp.mdga.message.server.StartPieceMessage;
|
||||||
import pp.mdga.server.ServerGameLogic;
|
import pp.mdga.server.ServerGameLogic;
|
||||||
@@ -42,6 +45,17 @@ public void received(RequestMoveMessage msg, int from){
|
|||||||
if (piece.equals(msg.getPiece())) {
|
if (piece.equals(msg.getPiece())) {
|
||||||
int targetIndex = calculateTargetIndex(piece);
|
int targetIndex = calculateTargetIndex(piece);
|
||||||
Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex];
|
Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex];
|
||||||
|
|
||||||
|
if(targetNode.isBonus()) {
|
||||||
|
for (Player p : logic.getGame().getPlayersAsList()) {
|
||||||
|
if(p.isActive()) {
|
||||||
|
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(logic.getGame().draw()));
|
||||||
|
} else {
|
||||||
|
logic.getServerSender().send(logic.getGame().getPlayerIdByColor(p.getColor()), new DrawCardMessage(new HiddenCard()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//send MoveMessage
|
//send MoveMessage
|
||||||
logic.getServerSender().broadcast(new MoveMessage(piece, false, targetIndex));
|
logic.getServerSender().broadcast(new MoveMessage(piece, false, targetIndex));
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public void enter() {
|
|||||||
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new PlayCardMessage(this.powerCardAutomaton.getSelectedCard(), new ArrayList<>(), this.logic.getGame().getDiceModifier()));
|
this.logic.getServerSender().send(this.logic.getGame().getActivePlayerId(), new PlayCardMessage(this.powerCardAutomaton.getSelectedCard(), new ArrayList<>(), this.logic.getGame().getDiceModifier()));
|
||||||
this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).removeHandCard(this.powerCardAutomaton.getSelectedCard());
|
this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).removeHandCard(this.powerCardAutomaton.getSelectedCard());
|
||||||
this.logic.getGame().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard());
|
this.logic.getGame().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard());
|
||||||
|
this.powerCardAutomaton.getTurnAutomaton().getRollDiceState().setResetModifier(false);
|
||||||
this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState());
|
this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user