From 2ab19d0fc83b278cfc0db556fe422f26b7cfaddb Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 8 Dec 2024 18:05:35 +0100 Subject: [PATCH] 200 iq move --- .../pp/mdga/message/server/SelectPieceMessage.java | 2 +- .../game/turn/choosepiece/StartPieceState.java | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/SelectPieceMessage.java b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/SelectPieceMessage.java index e52dbf0b..550645ac 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/message/server/SelectPieceMessage.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/message/server/SelectPieceMessage.java @@ -83,7 +83,7 @@ public List getTargetIndex() { */ @Override public void accept(ServerInterpreter interpreter) { - + interpreter.received(this); } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/StartPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/StartPieceState.java index 7c2f26ac..ff3e62e0 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/StartPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/StartPieceState.java @@ -1,5 +1,6 @@ package pp.mdga.server.automaton.game.turn.choosepiece; +import pp.mdga.game.Node; import pp.mdga.game.Piece; import pp.mdga.message.client.RequestMoveMessage; import pp.mdga.message.server.MoveMessage; @@ -39,14 +40,21 @@ public void enter() { 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())) { + int targetIndex = calculateTargetIndex(piece); + Node targetNode = logic.getGame().getBoard().getInfield()[targetIndex]; + //send MoveMessage + logic.getServerSender().broadcast(new MoveMessage(piece, false, targetIndex)); - logic.getServerSender().broadcast(new MoveMessage(piece, false, calculateTargetIndex(piece))); + //clear old piece from node logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant(); - Piece occ = logic.getGame().getBoard().getInfield()[calculateTargetIndex(piece)].getOccupant(); + + Piece occ = targetNode.getOccupant(); if (occ != null){ + //move occ to waiting logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ); } - logic.getGame().getBoard().getInfield()[calculateTargetIndex(piece)].setOccupant(piece); + //move piece to targetNode + targetNode.setOccupant(piece); this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getMovePieceState()); }