modified 'ChoosePowerCardState' to work with PowerCards as well as adjusted 'SelectcardMessage' to use 'PowerCards'

This commit is contained in:
Hanno Fleischer
2024-12-06 00:31:12 +01:00
parent a92c06a70e
commit 04119d2f3e
2 changed files with 19 additions and 16 deletions

View File

@@ -4,6 +4,7 @@
import pp.mdga.client.ClientState;
import pp.mdga.client.gamestate.turnstate.PowerCardState;
import pp.mdga.game.BonusCard;
import pp.mdga.game.card.*;
import pp.mdga.message.client.NoPowerCardMessage;
import pp.mdga.message.client.SelectCardMessage;
import pp.mdga.message.server.DiceNowMessage;
@@ -11,6 +12,7 @@
import pp.mdga.message.server.PossibleCardMessage;
import pp.mdga.message.server.PossiblePieceMessage;
import pp.mdga.notification.SelectableCardsNotification;
import pp.mdga.visitor.Visitor;
import java.util.ArrayList;
import java.util.stream.Collectors;
@@ -21,7 +23,7 @@
public class ChoosePowerCardState extends PowerCardStates {
private final PowerCardState parent;
private ArrayList<BonusCard> possibleCards;
private ArrayList<PowerCard> possibleCards;
/**
* Constructor
@@ -39,7 +41,6 @@ public ChoosePowerCardState(ClientState parent, ClientGameLogic logic) {
@Override
public void enter() {
possibleCards = new ArrayList<>();
System.out.println("ChoosePowerCardState");
}
/**
@@ -56,8 +57,14 @@ public void exit() {
*/
@Override
public void received(PossibleCardMessage msg){
possibleCards = (ArrayList<BonusCard>) msg.getPossibleCards();
logic.addNotification(new SelectableCardsNotification(possibleCards));
possibleCards = (ArrayList<PowerCard>)msg.getPossibleCards();
ArrayList<BonusCard> possibleBonusCards = new ArrayList<>();
for (PowerCard card : possibleCards) {
if (!possibleBonusCards.contains(card.getCard())) {
possibleBonusCards.add(card.getCard());
}
}
logic.addNotification(new SelectableCardsNotification(possibleBonusCards));
}
/**
@@ -67,7 +74,7 @@ public void received(PossibleCardMessage msg){
@Override
public void selectCard(BonusCard card){
if(card != null){
logic.send(new SelectCardMessage(card));
logic.send(new SelectCardMessage(logic.getGame().getPlayers().get(logic.getOwnPlayerId()).getPowerCardByType(card)));
} else {
logic.send(new NoPowerCardMessage());
}
@@ -79,11 +86,6 @@ public void selectCard(BonusCard card){
*/
@Override
public void received(PlayCardMessage msg){
if(msg.getCard().equals(BonusCard.TURBO)){
logic.getGame().setDiceModifier(msg.getDiceModifier());
} else {
LOGGER.log(System.Logger.Level.ERROR, "Received card that is not turbo");
}
}
/**

View File

@@ -2,6 +2,7 @@
import com.jme3.network.serializing.Serializable;
import pp.mdga.game.BonusCard;
import pp.mdga.game.card.PowerCard;
/**
* A message sent from the client to the server to select a bonus card.
@@ -11,14 +12,14 @@ public class SelectCardMessage extends ClientMessage {
/**
* The bonus card to be selected.
*/
private final BonusCard card;
private final PowerCard card;
/**
* Constructs a new SelectCard instance.
*
* @param card the bonus card to be selected
* @param card the power card to be selected
*/
public SelectCardMessage(BonusCard card) {
public SelectCardMessage(PowerCard card) {
this.card = card;
}
@@ -30,11 +31,11 @@ private SelectCardMessage() {
}
/**
* Gets the bonus card associated with this selection.
* Gets the power card associated with this selection.
*
* @return the bonus card
* @return the power card
*/
public BonusCard getCard() {
public PowerCard getCard() {
return card;
}