diff --git a/app/src/main/java/org/toop/app/Server.java b/app/src/main/java/org/toop/app/Server.java index 9421004..4a1e93e 100644 --- a/app/src/main/java/org/toop/app/Server.java +++ b/app/src/main/java/org/toop/app/Server.java @@ -152,6 +152,7 @@ public final class Server { information.players[0].name = user; information.players[0].isHuman = false; information.players[0].computerDifficulty = 5; + information.players[0].computerThinkTime = 1; information.players[1].name = response.opponent(); Runnable onGameOverRunnable = isSingleGame.get()? null: this::gameOver; diff --git a/app/src/main/java/org/toop/app/game/TicTacToeGame.java b/app/src/main/java/org/toop/app/game/TicTacToeGame.java index 1ca98a9..27060f1 100644 --- a/app/src/main/java/org/toop/app/game/TicTacToeGame.java +++ b/app/src/main/java/org/toop/app/game/TicTacToeGame.java @@ -230,12 +230,7 @@ public final class TicTacToeGame { } catch (InterruptedException _) {} } else { final Game.Move move; - if (information.players[1].name.equalsIgnoreCase("pism")) { - move = ai.findWorstMove(game,9); - }else{ - move = ai.findBestMove(game, information.players[0].computerDifficulty); - } - + move = ai.findBestMove(game, information.players[0].computerDifficulty); assert move != null; position = move.position(); } diff --git a/app/src/main/java/org/toop/app/view/displays/SongDisplay.java b/app/src/main/java/org/toop/app/view/displays/SongDisplay.java index 0c31455..09d3748 100644 --- a/app/src/main/java/org/toop/app/view/displays/SongDisplay.java +++ b/app/src/main/java/org/toop/app/view/displays/SongDisplay.java @@ -18,6 +18,7 @@ public class SongDisplay extends VBox { private final Text songTitle; private final ProgressBar progressBar; private final Text progressText; + private boolean paused = false; public SongDisplay() { new EventFlow() @@ -26,7 +27,6 @@ public class SongDisplay extends VBox { setAlignment(Pos.CENTER); getStyleClass().add("song-display"); - // TODO ADD GOOD SONG TITLES WITH ARTISTS DISPLAYED songTitle = new Text("song playing"); songTitle.getStyleClass().add("song-title"); @@ -36,8 +36,6 @@ public class SongDisplay extends VBox { progressText = new Text("0:00/0:00"); progressText.getStyleClass().add("progress-text"); - // TODO ADD BETTER CSS FOR THE SKIPBUTTON WHERE ITS AT A NICER POSITION - Button skipButton = new Button(">>"); Button pauseButton = new Button("⏸"); Button previousButton = new Button("<<"); @@ -48,20 +46,20 @@ public class SongDisplay extends VBox { skipButton.setOnAction( event -> { GlobalEventBus.post(new AudioEvents.SkipMusic()); + paused = false; + pauseButton.setText(getPlayString(paused)); }); pauseButton.setOnAction(event -> { GlobalEventBus.post(new AudioEvents.PauseMusic()); - if (pauseButton.getText().equals("⏸")) { - pauseButton.setText("▶"); - } - else if (pauseButton.getText().equals("▶")) { - pauseButton.setText("⏸"); - } + paused = !paused; + pauseButton.setText(getPlayString(paused)); }); previousButton.setOnAction( event -> { GlobalEventBus.post(new AudioEvents.PreviousMusic()); + paused = false; + pauseButton.setText(getPlayString(paused)); }); HBox control = new HBox(10, previousButton, pauseButton, skipButton); @@ -107,6 +105,15 @@ public class SongDisplay extends VBox { String time = positionMinutes + ":" + positionSecondsStr + " / " + durationMinutes + ":" + durationSecondsStr; return time; } + + private String getPlayString(boolean paused) { + if (paused) { + return "▶"; + } + else { + return "⏸"; + } + } } diff --git a/app/src/main/java/org/toop/local/AppContext.java b/app/src/main/java/org/toop/local/AppContext.java index 4d96fb4..67c8c40 100644 --- a/app/src/main/java/org/toop/local/AppContext.java +++ b/app/src/main/java/org/toop/local/AppContext.java @@ -1,6 +1,10 @@ package org.toop.local; import java.util.Locale; +import java.util.MissingResourceException; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.toop.framework.resource.ResourceManager; import org.toop.framework.resource.resources.LocalizationAsset; @@ -8,6 +12,8 @@ public class AppContext { private static final LocalizationAsset localization = ResourceManager.get("localization"); private static Locale locale = Locale.forLanguageTag("en"); + private static final Logger logger = LogManager.getLogger(AppContext.class); + public static LocalizationAsset getLocalization() { return localization; } @@ -22,6 +28,24 @@ public class AppContext { public static String getString(String key) { assert localization != null; - return localization.getString(key, locale); + + // TODO: Gebruik ResourceBundle.getBundle() zodat de fallback automatisch gaat. + // Hiervoor zou de assetManager aangepast moeten worden. + + try{ // Main return + return localization.getString(key, locale); + } + catch (MissingResourceException e) { + logger.error("Missing resource key: {}, in bundle: {}. ", key, locale, e); + } + + try{ // Fallback return + return localization.getString(key, localization.getFallback()); + } + catch (MissingResourceException e) { + logger.error("Missing resource key: {}, in default bundle!", key, e); + } + // Default return + return "MISSING RESOURCE"; } } diff --git a/app/src/main/resources/assets/audio/music/formerseas.mp3 b/app/src/main/resources/assets/audio/music/DM DOKURO - Guardian of the Former Seas.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/formerseas.mp3 rename to app/src/main/resources/assets/audio/music/DM DOKURO - Guardian of the Former Seas.mp3 diff --git a/app/src/main/resources/assets/audio/music/Roar Of The Jungle Dragon - Terraria Calamity.mp3 b/app/src/main/resources/assets/audio/music/DM DOKURO - Roar of the Jungle Dragon.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/Roar Of The Jungle Dragon - Terraria Calamity.mp3 rename to app/src/main/resources/assets/audio/music/DM DOKURO - Roar of the Jungle Dragon.mp3 diff --git a/app/src/main/resources/assets/audio/music/extraction-point.mp3 b/app/src/main/resources/assets/audio/music/Hans Zimmer - Extraction Point.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/extraction-point.mp3 rename to app/src/main/resources/assets/audio/music/Hans Zimmer - Extraction Point.mp3 diff --git a/app/src/main/resources/assets/audio/music/damned.mp3 b/app/src/main/resources/assets/audio/music/Kevin Sherwood - Damned.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/damned.mp3 rename to app/src/main/resources/assets/audio/music/Kevin Sherwood - Damned.mp3 diff --git a/app/src/main/resources/assets/audio/music/MW Main Menu - some artist.mp3 b/app/src/main/resources/assets/audio/music/MW2 (2009) Multiplayer Theme.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/MW Main Menu - some artist.mp3 rename to app/src/main/resources/assets/audio/music/MW2 (2009) Multiplayer Theme.mp3 diff --git a/app/src/main/resources/assets/audio/music/godfrey.mp3 b/app/src/main/resources/assets/audio/music/Tai Tomisawa - Godfrey, First Elden Lord .mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/godfrey.mp3 rename to app/src/main/resources/assets/audio/music/Tai Tomisawa - Godfrey, First Elden Lord .mp3 diff --git a/app/src/main/resources/assets/audio/music/gladius.mp3 b/app/src/main/resources/assets/audio/music/bignic - Gladius.mp3 similarity index 100% rename from app/src/main/resources/assets/audio/music/gladius.mp3 rename to app/src/main/resources/assets/audio/music/bignic - Gladius.mp3 diff --git a/app/src/main/resources/assets/audio/music/main-game-theme-loop.mp3 b/app/src/main/resources/assets/audio/music/main-game-theme-loop.mp3 deleted file mode 100644 index 7105fde..0000000 Binary files a/app/src/main/resources/assets/audio/music/main-game-theme-loop.mp3 and /dev/null differ diff --git a/framework/src/main/java/org/toop/framework/resource/resources/LocalizationAsset.java b/framework/src/main/java/org/toop/framework/resource/resources/LocalizationAsset.java index 3ec3328..7b5ec84 100644 --- a/framework/src/main/java/org/toop/framework/resource/resources/LocalizationAsset.java +++ b/framework/src/main/java/org/toop/framework/resource/resources/LocalizationAsset.java @@ -63,6 +63,9 @@ public class LocalizationAsset extends BaseResource implements LoadableResource, loaded = false; } + /** Returns the fallback locale used when locale is missing argument*/ + public Locale getFallback() {return this.fallback;} + /** * Checks whether this asset has been loaded. * @@ -126,7 +129,7 @@ public class LocalizationAsset extends BaseResource implements LoadableResource, public void loadFile(File file) { try (InputStreamReader reader = new InputStreamReader(new FileInputStream(file), StandardCharsets.UTF_8)) { - Locale locale = extractLocale(file.getName(), baseName); + Locale locale = extractLocale(file.getName()); bundles.put(locale, new PropertyResourceBundle(reader)); } catch (IOException e) { throw new RuntimeException("Failed to load localization file: " + file, e); @@ -166,10 +169,9 @@ public class LocalizationAsset extends BaseResource implements LoadableResource, * Extracts a locale from a file name based on the pattern "base_LOCALE.properties". * * @param fileName the file name - * @param baseName the base name * @return extracted locale, or fallback if none found */ - private Locale extractLocale(String fileName, String baseName) { + private Locale extractLocale(String fileName) { int underscoreIndex = fileName.indexOf('_'); int dotIndex = fileName.lastIndexOf('.'); if (underscoreIndex > 0 && dotIndex > underscoreIndex) {