diff --git a/src/main/java/com/alterdekim/game/component/game/ActionDialog.java b/src/main/java/com/alterdekim/game/component/game/ActionDialog.java index dd83d91..621c490 100644 --- a/src/main/java/com/alterdekim/game/component/game/ActionDialog.java +++ b/src/main/java/com/alterdekim/game/component/game/ActionDialog.java @@ -5,9 +5,9 @@ import lombok.Getter; @AllArgsConstructor @Getter -public class ActionDialog { +public class ActionDialog { private String dialogTitle; private String dialogDescription; private ActionDialogType actionDialogType; - private T actionDialogBody; + private ActionDialogBody actionDialogBody; } diff --git a/src/main/java/com/alterdekim/game/component/game/ActionDialogBody.java b/src/main/java/com/alterdekim/game/component/game/ActionDialogBody.java new file mode 100644 index 0000000..7e4f47d --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/ActionDialogBody.java @@ -0,0 +1,4 @@ +package com.alterdekim.game.component.game; + +public interface ActionDialogBody { +} diff --git a/src/main/java/com/alterdekim/game/component/game/DialogButton.java b/src/main/java/com/alterdekim/game/component/game/DialogButton.java index 3d0332a..f4c5517 100644 --- a/src/main/java/com/alterdekim/game/component/game/DialogButton.java +++ b/src/main/java/com/alterdekim/game/component/game/DialogButton.java @@ -1,10 +1,13 @@ package com.alterdekim.game.component.game; +import com.alterdekim.game.websocket.message.WebSocketMessageType; import lombok.AllArgsConstructor; +import java.util.List; + @AllArgsConstructor public class DialogButton { private String buttonText; - private String buttonColor; - private String onclickAction; + private DialogButtonColor buttonColor; + private List onclickAction; } diff --git a/src/main/java/com/alterdekim/game/component/game/DialogButtonColor.java b/src/main/java/com/alterdekim/game/component/game/DialogButtonColor.java new file mode 100644 index 0000000..0347401 --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/DialogButtonColor.java @@ -0,0 +1,9 @@ +package com.alterdekim.game.component.game; + +public enum DialogButtonColor { + GREEN, + RED, + BLUE, + PURPLE, + YELLOW +} diff --git a/src/main/java/com/alterdekim/game/component/game/DialogButtonsList.java b/src/main/java/com/alterdekim/game/component/game/DialogButtonsList.java new file mode 100644 index 0000000..94e3a67 --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/DialogButtonsList.java @@ -0,0 +1,13 @@ +package com.alterdekim.game.component.game; + +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +import java.util.List; + +@Getter +@RequiredArgsConstructor +public class DialogButtonsList implements ActionDialogBody { + private final List buttons; +} diff --git a/src/main/java/com/alterdekim/game/component/game/GameRoom.java b/src/main/java/com/alterdekim/game/component/game/GameRoom.java index 69fe196..5be4a96 100644 --- a/src/main/java/com/alterdekim/game/component/game/GameRoom.java +++ b/src/main/java/com/alterdekim/game/component/game/GameRoom.java @@ -13,9 +13,7 @@ import org.springframework.web.socket.TextMessage; import org.springframework.web.socket.WebSocketSession; import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.UUID; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -31,7 +29,9 @@ public class GameRoom { private List boardFields; - private ObjectMapper om = new ObjectMapper(); + + + private final ObjectMapper om = new ObjectMapper(); public GameRoom(List players, UserServiceImpl userService) { this.userService = userService; @@ -122,8 +122,9 @@ public class GameRoom { sendMessage(message.getUid(), WebSocketMessageType.PlayerColor, new PlayerColor(2L, "#ff0000")); List buttons = new ArrayList<>(); - buttons.add(new DialogButton("Button1", "#00ff00", "")); - sendMessage(message.getUid(), WebSocketMessageType.ShowDialog, new ActionDialog<>("Title!", "Description!", ActionDialogType.Buttons, buttons)); + buttons.add(new DialogButton("Button1", DialogButtonColor.GREEN, Collections.singletonList(WebSocketMessageType.HideDialog))); + DialogButtonsList b = new DialogButtonsList(buttons); + sendMessage(message.getUid(), WebSocketMessageType.ShowDialog, new ActionDialog("Title!", "Description!", ActionDialogType.Buttons, b)); } private void sendMessage(Long userId, WebSocketMessageType type, Object o) { diff --git a/src/main/resources/static/javascript/game.js b/src/main/resources/static/javascript/game.js index 9e398aa..e51483d 100644 --- a/src/main/resources/static/javascript/game.js +++ b/src/main/resources/static/javascript/game.js @@ -124,6 +124,9 @@ function showMessage(message) { case 'PlayerColor': playerColor(JSON.parse(message.body)); break; + case 'ShowDialog': + showDialog(JSON.parse(message.body)); + break; } } @@ -139,6 +142,11 @@ function chipMove(body) { moveChips(); } +function showDialog(body) { + console.log("Got showDialog message"); + console.log(body); +} + function playerColor(body) { $(".player").each(function() { if( $(this).attr("data-pid") == body.playerId ) {