diff --git a/app/src/main/java/org/toop/app/layer/layers/MultiplayerLayer.java b/app/src/main/java/org/toop/app/layer/layers/MultiplayerLayer.java index 715c6f3..531c1c9 100644 --- a/app/src/main/java/org/toop/app/layer/layers/MultiplayerLayer.java +++ b/app/src/main/java/org/toop/app/layer/layers/MultiplayerLayer.java @@ -75,9 +75,8 @@ public final class MultiplayerLayer extends Layer { }); } else { player1Container.addText(AppContext.getString("computerDifficulty"), true); - player1Container.addSlider(5, computer1Difficulty, (difficulty) -> { - computer1Difficulty = difficulty; - }); + player1Container.addSlider(10, computer1Difficulty, (difficulty) -> + computer1Difficulty = difficulty); } if (isConnectionLocal) { @@ -93,9 +92,8 @@ public final class MultiplayerLayer extends Layer { }); } else { player2Container.addText(AppContext.getString("computerDifficulty"), true); - player2Container.addSlider(5, computer2Difficulty, (difficulty) -> { - computer2Difficulty = difficulty; - }); + player2Container.addSlider(10, computer2Difficulty, (difficulty) -> + computer2Difficulty = difficulty); } } else { player2Container.addText(AppContext.getString("serverIP"), true); diff --git a/app/src/main/java/org/toop/app/layer/layers/game/TicTacToeLayer.java b/app/src/main/java/org/toop/app/layer/layers/game/TicTacToeLayer.java index 2aff8e0..eeafeaa 100644 --- a/app/src/main/java/org/toop/app/layer/layers/game/TicTacToeLayer.java +++ b/app/src/main/java/org/toop/app/layer/layers/game/TicTacToeLayer.java @@ -9,6 +9,8 @@ import org.toop.app.layer.Container; import org.toop.app.layer.Layer; import org.toop.app.layer.containers.VerticalContainer; import org.toop.app.layer.layers.MainLayer; +import org.toop.framework.eventbus.EventFlow; +import org.toop.framework.networking.events.NetworkEvents; import org.toop.game.Game; import org.toop.game.tictactoe.TicTacToe; import org.toop.game.tictactoe.TicTacToeAI; @@ -62,7 +64,13 @@ public final class TicTacToeLayer extends Layer { if (information.isConnectionLocal()) { new Thread(this::localGameThread).start(); } else { - new Thread(this::serverGameThread).start(); + new EventFlow() + .addPostEvent(NetworkEvents.StartClient.class, + information.serverIP(), + Integer.parseInt(information.serverPort())) + .onResponse(NetworkEvents.StartClientResponse.class, event -> + new Thread(() -> serverGameThread(event)).start()) + .postEvent(); } reload(); @@ -118,7 +126,8 @@ public final class TicTacToeLayer extends Layer { return; } } else { - move = ticTacToeAI.findBestMove(ticTacToe, compurterDifficultyToDepth(5, information.computerDifficulty()[currentPlayer])); + move = ticTacToeAI.findBestMove(ticTacToe, compurterDifficultyToDepth(10, + information.computerDifficulty()[currentPlayer])); } assert move != null; @@ -142,11 +151,37 @@ public final class TicTacToeLayer extends Layer { } } - private void serverGameThread() { + class OnlineGameState { + public long clientId = -1; + public long receivedMove = -1; + } + + private void serverGameThread(NetworkEvents.StartClientResponse event) { boolean running = true; + final long clientId = event.clientId(); + final OnlineGameState onlineGameState = new OnlineGameState(); + onlineGameState.clientId = clientId; + + new EventFlow() + .listen(NetworkEvents.GameMoveResponse.class,respEvent -> onMoveResponse(onlineGameState, respEvent)); + + new EventFlow().addPostEvent(new NetworkEvents.SendLogin(clientId, information.playerName()[0])) + .postEvent(); + + new EventFlow().addPostEvent(new NetworkEvents.SendSubscribe(clientId, "tic-tac-toe")) + .postEvent(); while (running) { final int currentPlayer = ticTacToe.getCurrentTurn(); } } + + private void onMoveResponse(OnlineGameState ogs, NetworkEvents.GameMoveResponse resp) { + } + + private void serverGameThreadResponseHandler(OnlineGameState ogs, NetworkEvents.ChallengeResponse msg) { + if (msg.clientId() != ogs.clientId) return; + IO.println("Client ID: " + ogs.clientId + " Received Message: " + msg); + } + } \ No newline at end of file diff --git a/framework/src/main/java/org/toop/framework/asset/ResourceManager.java b/framework/src/main/java/org/toop/framework/asset/ResourceManager.java index 68072ef..983dc02 100644 --- a/framework/src/main/java/org/toop/framework/asset/ResourceManager.java +++ b/framework/src/main/java/org/toop/framework/asset/ResourceManager.java @@ -90,6 +90,11 @@ public class ResourceManager { return asset.getResource(); } +// @SuppressWarnings("unchecked") +// public static ArrayList> getAllOfType() { +// return (ArrayList>) (ArrayList) new ArrayList<>(assets.values()); +// } + /** * Retrieve all assets of a specific resource type. *