From aab15969d8d8b9d039f9e41cc42b97b3468a4e3e Mon Sep 17 00:00:00 2001 From: Alex Guerrini Date: Thu, 15 Feb 2024 21:29:36 +0100 Subject: [PATCH] moved canEndTurn in GameManager --- .../unibo/controller/impl/MainControllerImpl.java | 15 +++++---------- src/main/java/it/unibo/model/api/GameManager.java | 5 +++++ .../java/it/unibo/model/impl/GameManagerImpl.java | 10 ++++++++++ 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/it/unibo/controller/impl/MainControllerImpl.java b/src/main/java/it/unibo/controller/impl/MainControllerImpl.java index 10eee7c..29e41c7 100644 --- a/src/main/java/it/unibo/controller/impl/MainControllerImpl.java +++ b/src/main/java/it/unibo/controller/impl/MainControllerImpl.java @@ -149,12 +149,7 @@ public boolean hasResources(final String playerName, final Map rollDie() { - final Pair rolledValue = turnController.rollDie(); - produceResources(rolledValue.getLeft() + rolledValue.getRight()); - mustPlaceRobber = rolledValue.getLeft() + rolledValue.getRight() == 7; - return rolledValue; + final Pair rolledDies = turnController.rollDie(); + produceResources(rolledDies.getLeft() + rolledDies.getRight()); + mustPlaceRobber = (rolledDies.getLeft() + rolledDies.getRight()) == 7; + return rolledDies; } } diff --git a/src/main/java/it/unibo/model/api/GameManager.java b/src/main/java/it/unibo/model/api/GameManager.java index 3a10f0d..b867d04 100644 --- a/src/main/java/it/unibo/model/api/GameManager.java +++ b/src/main/java/it/unibo/model/api/GameManager.java @@ -77,6 +77,11 @@ public interface GameManager { */ boolean canBuyCard(Player player); + /** + * @return whether the current player can end the turn + */ + boolean canEndTurn(); + /** * Make each tile with number {@code number} produce its resource. * It automatically updates the resources of each player. diff --git a/src/main/java/it/unibo/model/impl/GameManagerImpl.java b/src/main/java/it/unibo/model/impl/GameManagerImpl.java index 6f83549..51c0be0 100644 --- a/src/main/java/it/unibo/model/impl/GameManagerImpl.java +++ b/src/main/java/it/unibo/model/impl/GameManagerImpl.java @@ -293,4 +293,14 @@ private boolean isRoadNearToAnyPlayerProperty(final RoadPosition roadPosition, f }); } + @Override + public boolean canEndTurn() { + final int cycle = turnManager.getCycle(); + if (cycle < 2) { + return this.propertyManager.getPlayerProperties(turnManager.getCurrentPlayerTurn()).size() == cycle + && this.roadManager.getPlayerRoads(turnManager.getCurrentPlayerTurn()).size() == cycle; + } + return turnManager.hasRolled(); + } + }