Merge commit

This commit is contained in:
Felix Koppe
2024-12-09 01:47:47 +01:00
16 changed files with 93 additions and 2 deletions

View File

@@ -153,6 +153,7 @@ private void initializeSerializables() {
Serializer.registerClass(ShieldCard.class);
Serializer.registerClass(HiddenCard.class);
Serializer.registerClass(ChoosePieceStateMessage.class);
Serializer.registerClass(DrawCardMessage.class);
Serializer.registerClass(Color.class, new EnumSerializer());
Serializer.registerClass(PieceState.class, new EnumSerializer());

View File

@@ -424,6 +424,14 @@ public void received(ChoosePieceStateMessage choosePieceStateMessage) {
state.received(choosePieceStateMessage);
}
/**
* @param drawCardMessage
*/
@Override
public void received(DrawCardMessage drawCardMessage) {
state.received(drawCardMessage);
}
/**
* This method calls the method received of the state
*

View File

@@ -100,6 +100,11 @@ public void received(ChoosePieceStateMessage msg) {
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg.toString());
}
@Override
public void received(DrawCardMessage msg){
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg.toString());
}
@Override
public void received(MoveMessage msg) {
LOGGER.log(Level.DEBUG, "Received {0} not allowed.", msg.toString());

View File

@@ -286,6 +286,11 @@ public void received(ChoosePieceStateMessage msg){
state.received(msg);
}
@Override
public void received(DrawCardMessage msg){
state.received(msg);
}
/**
* This method returns the current state
*

View File

@@ -31,6 +31,13 @@ public void received(CeremonyMessage msg) {
logic.setState(logic.getCeremony());
}
@Override
public void received(DrawCardMessage msg){
logic.addNotification(new DrawCardNotification(logic.getGame().getActiveColor(), msg.getCard().getCard()));
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseActivatedBonusNodes();
logic.getGame().getGameStatistics().increaseActivatedBonusNodes();
}
@Override
public void received(DieMessage msg) {
//logic.getGame().setDiceEyes(msg.getDiceEye());

View File

@@ -143,6 +143,11 @@ public void received(ChoosePieceStateMessage msg){
state.received(msg);
}
@Override
public void received(DrawCardMessage msg){
state.received(msg);
}
public ChoosePieceState getChoosePiece() {
return choosePieceState;
}

View File

@@ -67,6 +67,13 @@ public void received(ActivePlayerMessage msg) {
}
}
@Override
public void received(DrawCardMessage msg){
logic.addNotification(new DrawCardNotification(logic.getGame().getActiveColor(), msg.getCard().getCard()));
logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getPlayerStatistic().increaseActivatedBonusNodes();
logic.getGame().getGameStatistics().increaseActivatedBonusNodes();
}
@Override
public void received(MoveMessage msg) {
Piece piece = logic.getGame().getPieceThroughUUID(msg.getPiece().getUuid());

View File

@@ -13,4 +13,9 @@ public class BonusNode extends Node {
BonusNode() {
super(null);
}
@Override
public boolean isBonus() {
return true;
}
}

View File

@@ -92,7 +92,7 @@ public Game() {
* This method initializes the draw pile with the predefined number of bonus cards.
*/
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 ShieldCard(), AMOUNT_OF_SHIELD_CARDS);
Collections.shuffle(this.drawPile);

View File

@@ -49,6 +49,10 @@ public void setOccupant(Piece occupant) {
this.occupant = occupant;
}
public boolean isBonus(){
return false;
}
/**
* This method handles the event when a new occupant is moved to the node,
* it then returns the old occupant.

View File

@@ -0,0 +1,34 @@
package pp.mdga.message.server;
import com.jme3.network.serializing.Serializable;
import pp.mdga.game.card.PowerCard;
@Serializable
public class DrawCardMessage extends ServerMessage{
private final PowerCard card;
public DrawCardMessage(PowerCard card){
super();
this.card = card;
}
private DrawCardMessage(){
super();
card = null;
}
/**
* Accepts a visitor to process this message.
*
* @param interpreter the visitor to process this message
*/
@Override
public void accept(ServerInterpreter interpreter) {
interpreter.received(this);
}
public PowerCard getCard(){
return card;
}
}

View File

@@ -223,4 +223,6 @@ public interface ServerInterpreter {
void received(IncorrectRequestMessage msg);
void received(ChoosePieceStateMessage choosePieceStateMessage);
void received(DrawCardMessage drawCardMessage);
}

View File

@@ -3,6 +3,7 @@
import pp.mdga.game.Piece;
import pp.mdga.game.PieceState;
import pp.mdga.game.ShieldState;
import pp.mdga.game.card.PowerCard;
import pp.mdga.message.client.SelectedPiecesMessage;
import pp.mdga.message.server.IncorrectRequestMessage;
import pp.mdga.message.server.PlayCardMessage;
@@ -56,6 +57,8 @@ public void received(SelectedPiecesMessage msg, int from) {
}
}
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().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard());
this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState());
}
else {

View File

@@ -78,6 +78,9 @@ public void received(SelectedPiecesMessage msg, int from) {
logic.getServerSender().broadcast(new PlayCardMessage(this.powerCardAutomaton.getSelectedCard(), msg.getPieces(), 1));
this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).removeHandCard(this.powerCardAutomaton.getSelectedCard());
this.logic.getGame().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard());
this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState());
}
} else {

View File

@@ -26,6 +26,8 @@ public void enter() {
this.logic.getGame().getDie().modify();
this.logic.getGame().setDiceModifier(this.logic.getGame().getDie().getDieModifier());
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().getDiscardPile().add(this.powerCardAutomaton.getSelectedCard());
this.powerCardAutomaton.getTurnAutomaton().setCurrentState(this.powerCardAutomaton.getTurnAutomaton().getPlayPowerCardState());
}

View File

@@ -38,7 +38,7 @@ public void enter() {
LOGGER.log(System.Logger.Level.INFO, "Entered FirstRollState state.");
roll = 0;
moveablePieces = new ArrayList<>();
for (Piece piece : this.rollDiceAutomaton.getTurnAutomaton().getPlayer().getPieces()) {
for (Piece piece : this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).getPieces()) {
if (piece.getState() == PieceState.HOME || piece.getState() == PieceState.ACTIVE) {
moveablePieces.add(piece);
}