From 44f893ccefca5de3b22d24b1a41541776e7907b1 Mon Sep 17 00:00:00 2001 From: Daniel Grigencha Date: Mon, 2 Dec 2024 19:45:11 +0100 Subject: [PATCH 1/4] Updated 'Game' class. Updated the 'Game' class by setting the 'die' attribute correctly inside the constructor. --- Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java index 69bab269..4c27d8f2 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java @@ -65,6 +65,7 @@ public Game() { drawPile.add(BonusCard.SHIELD); } board = new Board(); + die = new Die(); } /** From 005df941149846872e70e1861c482ee6e13af637 Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 2 Dec 2024 19:55:18 +0100 Subject: [PATCH 2/4] added Resources calss to access teh properties --- .../src/main/java/pp/mdga/Resources.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/Resources.java diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/Resources.java b/Projekte/mdga/model/src/main/java/pp/mdga/Resources.java new file mode 100644 index 00000000..a8c3bf82 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/Resources.java @@ -0,0 +1,33 @@ +package pp.mdga; + +import java.util.ResourceBundle; + +/** + * Provides access to the resource bundle of the game. + * + * @see #BUNDLE + */ +public class Resources { + /** + * The resource bundle for the MDGA game. + */ + public static final ResourceBundle BUNDLE = ResourceBundle.getBundle("mdga"); //NON-NLS + + /** + * Gets a string for the given key from the resource bundle in {@linkplain #BUNDLE}. + * + * @param key the key for the desired string + * @return the string for the given key + * @throws NullPointerException if {@code key} is {@code null} + * @throws java.util.MissingResourceException if no object for the given key can be found + * @throws ClassCastException if the object found for the given key is not a string + */ + public static String lookup(String key) { + return BUNDLE.getString(key); + } + + /** + * Private constructor to prevent instantiation. + */ + private Resources() { /* do not instantiate */ } +} From c4304ae99a675c33eb728bcbf5a6d5bb6c534332 Mon Sep 17 00:00:00 2001 From: Daniel Grigencha Date: Mon, 2 Dec 2024 20:19:13 +0100 Subject: [PATCH 3/4] Updated 'Game' class. Updated the 'Game' class by removing the 'allReady' attribute in it. In Addtion, the 'areAllReady' method was added. --- .../src/main/java/pp/mdga/game/Game.java | 52 +++++++++++-------- 1 file changed, 31 insertions(+), 21 deletions(-) diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java index 4c27d8f2..9d7d83d5 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java @@ -48,9 +48,6 @@ public class Game { // The color of the active player. private Color activeColor; - // A flag indicating whether all players are ready. - private boolean allReady = false; - /** * This constructor creates a new Game object. */ @@ -114,6 +111,21 @@ public boolean isColorTaken(Color color) { return false; } + /** + * This method will be used to return the first unused color if possible. + * + * @return color as a Color enumeration. + */ + public Color getFirstUnusedColor() { + for (Color color : Color.values()) { + if (!isColorTaken(color)) { + return color; + } + } + + return null; + } + /** * This method will be used to return the player which has the given id parameter. * @@ -156,6 +168,22 @@ public int getNumberOfActivePlayers() { return activePlayers; } + /** + * This method will be used to check if all players are ready. + * If yes it will return true, otherwise false. + * + * @return true or false. + */ + public boolean areAllReady() { + for (Map.Entry entry : this.players.entrySet()) { + if (!entry.getValue().isReady()) { + return false; + } + } + + return true; + } + /** * This method will be used to return a piece based on the UUID. * @@ -351,22 +379,4 @@ public void setDie(Die die) { public void setHost(int host) { this.host = host; } - - /** - * This method returns the all ready state. - * - * @return the already state - */ - public Boolean allReady() { - return allReady; - } - - /** - * This method sets the all ready state. - * - * @param allReady the new all-ready state - */ - public void setAllReady(Boolean allReady) { - this.allReady = allReady; - } } From 7ddcdc3f483ff45f251a4865e619621a1c78c578 Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Mon, 2 Dec 2024 20:24:17 +0100 Subject: [PATCH 4/4] added the first error.messages and adjusted --- .../src/main/java/pp/mdga/client/MdgaApp.java | 2 +- .../pp/mdga/client/dialogState/LobbyState.java | 4 ++-- .../pp/mdga/server/automaton/LobbyState.java | 10 ---------- .../model/src/main/resources/mdga.properties | 18 ++++++++++++++++++ .../src/main/resources/mdga_de.properties | 14 ++++++++++++++ 5 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index 41692841..a1df6b46 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -60,7 +60,7 @@ public class MdgaApp extends SimpleApplication { private ServerConnection networkConnection; - private MdgaApp() { + public MdgaApp() { networkConnection = new NetworkSupport(this); this.clientGameLogic = new ClientGameLogic(networkConnection); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java index dcbe16f2..fb838357 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java @@ -63,9 +63,9 @@ public void selectUnready(){ @Override public void selectStart(){ - if(logic.isHost() && logic.getGame().allReady()){ + if(logic.isHost() && logic.getGame().areAllReady()){ logic.send(new StartGameMessage(false)); - } else if(logic.isHost() && !logic.getGame().allReady()) { + } else if(logic.isHost() && !logic.getGame().areAllReady()) { logic.send(new StartGameMessage(true)); } else { LOGGER.log(System.Logger.Level.ERROR, "You are not the host"); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java index 167992c2..2f97e9c9 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/server/automaton/LobbyState.java @@ -145,16 +145,6 @@ public void received(LobbyReadyMessage msg, int from) { return; } } - - this.logic.getGame().setAllReady(true); - if (this.logic.getGame().allReady()) { - this.logic.getServerSender().broadcast(new StartBriefingMessage(this.logic.getGame().getBoard())); - this.initializeGame(); - for (Map.Entry entry : logic.getGame().getBoard().getPlayerData().entrySet()) { - this.logic.getServerSender().broadcast(new PlayerDataMessage(entry.getValue(), entry.getKey())); - } - this.logic.getServerSender().broadcast(new ServerStartGameMessage()); - } } /** diff --git a/Projekte/mdga/model/src/main/resources/mdga.properties b/Projekte/mdga/model/src/main/resources/mdga.properties index e69de29b..0e2c35be 100644 --- a/Projekte/mdga/model/src/main/resources/mdga.properties +++ b/Projekte/mdga/model/src/main/resources/mdga.properties @@ -0,0 +1,18 @@ +incorrect.request.0= +incorrect.request.1= +incorrect.request.2= +incorrect.request.3= +incorrect.request.4= +incorrect.request.5= +incorrect.request.6= +incorrect.request.7= +incorrect.request.8= +incorrect.request.9= +incorrect.request.10= +incorrect.request.11= +incorrect.request.12= +incorrect.request.13= +incorrect.request.14= + + + diff --git a/Projekte/mdga/model/src/main/resources/mdga_de.properties b/Projekte/mdga/model/src/main/resources/mdga_de.properties index e69de29b..cdad81cc 100644 --- a/Projekte/mdga/model/src/main/resources/mdga_de.properties +++ b/Projekte/mdga/model/src/main/resources/mdga_de.properties @@ -0,0 +1,14 @@ +incorrect.request.1=Die ausgewählte TSK ist bereits belegt. +incorrect.request.2=Es gibt keine freie TSK mehr, welche ausgewählt werden kann. +incorrect.request.3= +incorrect.request.4= +incorrect.request.5= +incorrect.request.6= +incorrect.request.7= +incorrect.request.8= +incorrect.request.9= +incorrect.request.10= +incorrect.request.11= +incorrect.request.12= +incorrect.request.13= +incorrect.request.14=