Merge commit
This commit is contained in:
@@ -3,6 +3,7 @@
|
|||||||
import pp.mdga.client.ClientGameLogic;
|
import pp.mdga.client.ClientGameLogic;
|
||||||
import pp.mdga.client.ClientState;
|
import pp.mdga.client.ClientState;
|
||||||
import pp.mdga.client.GameState;
|
import pp.mdga.client.GameState;
|
||||||
|
import pp.mdga.game.Node;
|
||||||
import pp.mdga.game.Piece;
|
import pp.mdga.game.Piece;
|
||||||
import pp.mdga.game.PieceState;
|
import pp.mdga.game.PieceState;
|
||||||
import pp.mdga.message.server.*;
|
import pp.mdga.message.server.*;
|
||||||
@@ -78,10 +79,47 @@ public void received(ActivePlayerMessage msg) {
|
|||||||
public void received(MoveMessage msg) {
|
public void received(MoveMessage msg) {
|
||||||
Piece piece = logic.getGame().getPieceThroughUUID(msg.getPiece().getUuid());
|
Piece piece = logic.getGame().getPieceThroughUUID(msg.getPiece().getUuid());
|
||||||
if (msg.isHomeMove()) {
|
if (msg.isHomeMove()) {
|
||||||
|
if(piece.getState().equals(PieceState.HOME)){
|
||||||
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
|
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
|
||||||
logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant();
|
int pieceHomeIndex = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
|
||||||
logic.getGame().getPlayerByColor(piece.getColor()).setPieceInHome(msg.getTargetIndex(), piece);
|
Node pieceNode = logic.getGame().getActivePlayer().getHomeNodes()[pieceHomeIndex];
|
||||||
} else {
|
|
||||||
|
//gets the oldNode
|
||||||
|
int homeIndex = logic.getGame().getActivePlayer().getHomeIndexOfPiece(piece);
|
||||||
|
Node oldNode = logic.getGame().getActivePlayer().getHomeNodes()[homeIndex];
|
||||||
|
//gets the targetNode
|
||||||
|
Node targetNode = logic.getGame().getActivePlayer().getHomeNodes()[msg.getTargetIndex()];
|
||||||
|
if (msg.getTargetIndex() ==logic.getGame().getActivePlayer().getHighestHomeIdx()) {
|
||||||
|
piece.setState(PieceState.HOMEFINISHED);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
piece.setState(PieceState.HOME);
|
||||||
|
}
|
||||||
|
|
||||||
|
oldNode.clearOccupant();
|
||||||
|
targetNode.setOccupant(piece);
|
||||||
|
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
logic.addNotification(new HomeMoveNotification(piece.getUuid(), msg.getTargetIndex()));
|
||||||
|
int oldNoteIdx = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
|
||||||
|
Node oldNode = logic.getGame().getBoard().getInfield()[oldNoteIdx];
|
||||||
|
|
||||||
|
//gets the targetNode
|
||||||
|
Node targetNode = logic.getGame().getActivePlayer().getHomeNodes()[msg.getTargetIndex()];
|
||||||
|
|
||||||
|
if (msg.getTargetIndex() ==logic.getGame().getActivePlayer().getHighestHomeIdx()) {
|
||||||
|
piece.setState(PieceState.HOMEFINISHED);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
piece.setState(PieceState.HOME);
|
||||||
|
}
|
||||||
|
|
||||||
|
oldNode.clearOccupant();
|
||||||
|
targetNode.setOccupant(piece);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
int oldIndex = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
|
int oldIndex = logic.getGame().getBoard().getInfieldIndexOfPiece(piece);
|
||||||
Piece occ = logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant();
|
Piece occ = logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].getOccupant();
|
||||||
if (occ != null) {
|
if (occ != null) {
|
||||||
|
|||||||
Reference in New Issue
Block a user