From a56f68efdcd5eb23b9159520df87eb850c77f2b0 Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 9 Dec 2024 16:54:26 +0100 Subject: [PATCH] fixed Turbo card with zero modifier --- Projekte/.run/MdgaApp.run.xml | 6 +++--- .../java/pp/mdga/client/gamestate/TurnState.java | 5 ----- .../client/gamestate/turnstate/ChoosePieceState.java | 2 +- .../turnstate/choosepiecestate/NoPieceState.java | 2 +- .../game/turn/choosepiece/NoPieceState.java | 12 +++++------- .../automaton/game/turn/choosepiece/NoTurnState.java | 1 + .../main/java/pp/mdga/visitor/ServerCardVisitor.java | 10 ++++++---- 7 files changed, 17 insertions(+), 21 deletions(-) diff --git a/Projekte/.run/MdgaApp.run.xml b/Projekte/.run/MdgaApp.run.xml index cfb2a51b..f0626a72 100644 --- a/Projekte/.run/MdgaApp.run.xml +++ b/Projekte/.run/MdgaApp.run.xml @@ -1,9 +1,9 @@ - - + \ No newline at end of file diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java index 97d0238f..ee52b0fc 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/TurnState.java @@ -159,11 +159,6 @@ public void received(ChoosePieceStateMessage msg){ state.received(msg); } - @Override - public void received(DrawCardMessage msg){ - - } - public ChoosePieceState getChoosePiece() { return choosePieceState; } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/ChoosePieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/ChoosePieceState.java index 57b7f257..226a150f 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/ChoosePieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/ChoosePieceState.java @@ -63,7 +63,7 @@ public void received(StartPieceMessage msg){ } @Override - public void received(NoTurnMessage msg){ + public void received(EndOfTurnMessage msg){ currentState.received(msg); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java index 31931335..cb462f60 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/NoPieceState.java @@ -70,7 +70,7 @@ public void received(StartPieceMessage msg){ } @Override - public void received(NoTurnMessage msg){ + public void received(EndOfTurnMessage msg){ logic.getGame().setTurboFlag(false); parent.getParent().getParent().setState(parent.getParent().getParent().getWaiting()); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoPieceState.java index b4f04e9b..af88e20c 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoPieceState.java @@ -28,16 +28,14 @@ private void initialize(){ Player activePlayer = logic.getGame().getPlayerByColor(logic.getGame().getActiveColor()); if(logic.getGame().getDiceModifier() == 0){ if (logic.getGame().getDiceEyes() == 6) { - if (activePlayer.hasPieceInWaitingArea()){ - if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())){ - this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getWaitingPieceState()); - } else { - this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getNoTurnState()); + if (activePlayer.hasPieceInWaitingArea()) { + if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())) { + this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getWaitingPieceState()); + return; } - } else { - this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getNoTurnState()); } } + this.choosePieceAutomaton.setCurrentState(this.choosePieceAutomaton.getNoTurnState()); } else if (activePlayer.hasPieceInWaitingArea()) { if (!logic.getGame().getBoard().getInfield()[activePlayer.getStartNodeIndex()].isOccupied(activePlayer.getColor())){ if (logic.getGame().getDiceEyes() == 6) { diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java index 368088a4..e6c4770a 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/game/turn/choosepiece/NoTurnState.java @@ -29,6 +29,7 @@ private void setActivePlayer(Color color) { } else { setActivePlayer(color.next(logic.getGame())); } + this.choosePieceAutomaton.getTurnAutomaton().getGameAutomaton().setCurrentState(this.choosePieceAutomaton.getTurnAutomaton().getGameAutomaton().getTurnState()); } /** diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/visitor/ServerCardVisitor.java b/Projekte/mdga/model/src/main/java/pp/mdga/visitor/ServerCardVisitor.java index 6050d29d..000828c1 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/visitor/ServerCardVisitor.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/visitor/ServerCardVisitor.java @@ -41,7 +41,7 @@ public ServerCardVisitor(ServerGameLogic logic) { */ @Override public void visit(TurboCard card) { - for (Piece piece : this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).getPieces()) { + for (Piece piece : this.logic.getGame().getActivePlayer().getPieces()) { if (piece.getState() == PieceState.ACTIVE) { if (!this.cards.contains(card)) { this.cards.add(card); @@ -58,7 +58,7 @@ public void visit(TurboCard card) { @Override public void visit(SwapCard card) { List possibleOwnPieces = new ArrayList<>(); - for (Piece piece : this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor()).getPieces()) { + for (Piece piece : this.logic.getGame().getActivePlayer().getPieces()) { if (piece.getState() == PieceState.ACTIVE) { if (!possibleOwnPieces.contains(piece)) { possibleOwnPieces.add(piece); @@ -68,7 +68,7 @@ public void visit(SwapCard card) { List possibleOtherPieces = new ArrayList<>(); for (var player : this.logic.getGame().getPlayers().values()) { - if (player != this.logic.getGame().getPlayerByColor(this.logic.getGame().getActiveColor())) { + if (player != this.logic.getGame().getActivePlayer()) { for (Piece piece : player.getPieces()) { if (piece.getState() == PieceState.ACTIVE) { if (!possibleOtherPieces.contains(piece)) { @@ -82,7 +82,9 @@ public void visit(SwapCard card) { if (!possibleOtherPieces.isEmpty() && !possibleOwnPieces.isEmpty()) { this.swapOwnPieces.addAll(possibleOwnPieces); this.swapOtherPieces.addAll(possibleOtherPieces); - this.cards.add(card); + if (!this.cards.contains(card)) { + this.cards.add(card); + } } }