200 iq move

This commit is contained in:
Cedric Beck
2024-12-08 18:05:35 +01:00
parent f489357bbb
commit 2ab19d0fc8
2 changed files with 12 additions and 4 deletions

View File

@@ -83,7 +83,7 @@ public List<Integer> getTargetIndex() {
*/ */
@Override @Override
public void accept(ServerInterpreter interpreter) { public void accept(ServerInterpreter interpreter) {
interpreter.received(this);
} }
/** /**

View File

@@ -1,5 +1,6 @@
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.Piece; import pp.mdga.game.Piece;
import pp.mdga.message.client.RequestMoveMessage; import pp.mdga.message.client.RequestMoveMessage;
import pp.mdga.message.server.MoveMessage; import pp.mdga.message.server.MoveMessage;
@@ -39,14 +40,21 @@ public void enter() {
public void received(RequestMoveMessage msg, int from){ public void received(RequestMoveMessage msg, int from){
LOGGER.log(System.Logger.Level.INFO, "Received RequestMoveMessage message. is piece equals: " + piece.equals(msg.getPiece())); LOGGER.log(System.Logger.Level.INFO, "Received RequestMoveMessage message. is piece equals: " + piece.equals(msg.getPiece()));
if (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(); 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){ if (occ != null){
//move occ to waiting
logic.getGame().getPlayerByColor(occ.getColor()).addWaitingPiece(occ); 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()); this.choosePieceAutomaton.getTurnAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getMovePieceState());
} }