This commit is contained in:
Cedric Beck
2024-12-08 11:39:42 +01:00
8 changed files with 17 additions and 11 deletions

View File

@@ -80,7 +80,6 @@ public void received(ServerStartGameMessage msg) {
}
}
logic.getGame().setBoard(msg.getBoard());
System.out.println(logic.getGame().getPlayerById(logic.getOwnPlayerId()).toString());
logic.addNotification(new GameNotification(logic.getGame().getPlayerById(logic.getOwnPlayerId()).getColor()));
for (var player : logic.getGame().getPlayers().values()) {
List<UUID> pieces = new ArrayList<>();

View File

@@ -46,6 +46,7 @@ public void enter() {
for(Map.Entry<Integer, Player> entry : logic.getGame().getPlayers().entrySet()){
logic.addNotification(new MovePieceNotification(entry.getValue().getPieces()[0].getUuid(), entry.getValue().getStartNodeIndex(), true));
logic.getGame().getBoard().getInfield()[entry.getValue().getStartNodeIndex()].setOccupant(entry.getValue().getPieces()[0]);
entry.getValue().getWaitingArea()[0] = null;
animationCounter++;
if(entry.getKey() == logic.getOwnPlayerId()){
logic.addNotification(new AcquireCardNotification(entry.getValue().getHandCards().get(0).getCard()));

View File

@@ -79,11 +79,11 @@ private StartNode createStartNode(int i) {
*/
public int getInfieldIndexOfPiece(Piece piece) {
for (int i = 0; i < infield.length; i++) {
if(infield[i].getOccupant() == null) {
continue;
}
if (infield[i].getOccupant().equals(piece)) {
return i;
System.out.println(infield[i].getOccupant());
if(infield[i].isOccupied()) {
if (infield[i].getOccupant().equals(piece)) {
return i;
}
}
}
return -1;

View File

@@ -2,6 +2,7 @@
import com.jme3.network.serializing.Serializable;
import java.util.Objects;
import java.util.UUID;
/**
@@ -159,7 +160,9 @@ public boolean equals(Object obj) {
if (obj instanceof Piece) {
Piece piece = (Piece) obj;
return this.hashCode() == piece.hashCode();
System.out.println("own UUID: " + this.uuid + ". Other UUID: " + piece.uuid);
return Objects.equals(this.uuid.toString(), piece.uuid.toString());
}
return false;

View File

@@ -187,7 +187,7 @@ public int getHomeIndexOfPiece(Piece piece) {
public boolean pieceInsideOfHome(Piece piece) {
for (Node node : this.homeNodes) {
if (node.getOccupant().equals(piece)) {
if (piece.equals(node.getOccupant())) {
return true;
}
}

View File

@@ -52,7 +52,7 @@ public void initializeGame() {
for (var player : this.logic.getGame().getPlayers().values()) {
player.initialize();
player.addHandCard(this.logic.getGame().draw());
Piece piece = player.getWaitingArea()[0];
Piece piece = player.getPieces()[0];
player.getWaitingArea()[0] = null;
piece.setState(PieceState.ACTIVE);
this.logic.getGame().getBoard().getInfield()[player.getStartNodeIndex()].setOccupant(piece);

View File

@@ -11,6 +11,7 @@ public abstract class ChoosePieceAutomatonState extends ServerState {
* Create ChoosePieceAutomatonState attributes.
*/
protected final ChoosePieceState choosePieceAutomaton;
private final System.Logger LOGGER = System.getLogger(ChoosePieceAutomatonState.class.getName());
/**
* Constructs a server state of the specified game logic.
@@ -92,6 +93,7 @@ private boolean canHomeMove(Piece piece, int moveIndex){
protected int calculateTargetIndex(Piece piece){
int steps = logic.getGame().getDiceModifier() * logic.getGame().getDiceEyes();
LOGGER.log(System.Logger.Level.INFO, "Calculating target index for piece: " + piece.getUuid() + " with steps: " + steps + "start index: " + logic.getGame().getBoard().getInfieldIndexOfPiece(piece));
return (logic.getGame().getBoard().getInfieldIndexOfPiece(piece) + steps) % logic.getGame().getBoard().getInfield().length;
}
}

View File

@@ -30,20 +30,21 @@ public StartPieceState(ChoosePieceState choosePieceAutomaton, ServerGameLogic lo
*/
@Override
public void enter() {
LOGGER.log(System.Logger.Level.DEBUG, "Exited StartPieceState state.");
LOGGER.log(System.Logger.Level.INFO, "Enter StartPieceState state.");
piece = logic.getGame().getBoard().getInfield()[logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()).getStartNodeIndex()].getOccupant();
logic.getServerSender().send(logic.getGame().getActivePlayerId(), new StartPieceMessage(piece.getUuid(), calculateTargetIndex(piece)));
}
@Override
public void received(RequestMoveMessage msg, int from){
LOGGER.log(System.Logger.Level.INFO, "Received RequestMoveMessage message. is piece equals: " + piece.equals(msg.getPiece()));
if (piece.equals(msg.getPiece())) {
logic.getServerSender().broadcast(new MoveMessage(piece, false, calculateTargetIndex(piece)));
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
Piece occ = logic.getGame().getBoard().getInfield()[logic.getGame().getPlayerByColor(piece.getColor()).getStartNodeIndex()].getOccupant();
if (occ != null){
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ);
}
logic.getServerSender().broadcast(new MoveMessage(piece, false, calculateTargetIndex(piece)));
this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getMovePieceState());
}
}