diff --git a/src/main/java/com/alterdekim/game/component/game/ActionDialog.java b/src/main/java/com/alterdekim/game/component/game/ActionDialog.java new file mode 100644 index 0000000..dd83d91 --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/ActionDialog.java @@ -0,0 +1,13 @@ +package com.alterdekim.game.component.game; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +@AllArgsConstructor +@Getter +public class ActionDialog { + private String dialogTitle; + private String dialogDescription; + private ActionDialogType actionDialogType; + private T actionDialogBody; +} diff --git a/src/main/java/com/alterdekim/game/component/game/ActionDialogType.java b/src/main/java/com/alterdekim/game/component/game/ActionDialogType.java new file mode 100644 index 0000000..3940382 --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/ActionDialogType.java @@ -0,0 +1,6 @@ +package com.alterdekim.game.component.game; + +public enum ActionDialogType { + Buttons, + Range +} diff --git a/src/main/java/com/alterdekim/game/component/game/DialogButton.java b/src/main/java/com/alterdekim/game/component/game/DialogButton.java new file mode 100644 index 0000000..3d0332a --- /dev/null +++ b/src/main/java/com/alterdekim/game/component/game/DialogButton.java @@ -0,0 +1,10 @@ +package com.alterdekim.game.component.game; + +import lombok.AllArgsConstructor; + +@AllArgsConstructor +public class DialogButton { + private String buttonText; + private String buttonColor; + private String onclickAction; +} 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 7878573..69fe196 100644 --- a/src/main/java/com/alterdekim/game/component/game/GameRoom.java +++ b/src/main/java/com/alterdekim/game/component/game/GameRoom.java @@ -31,6 +31,8 @@ public class GameRoom { private List boardFields; + private ObjectMapper om = new ObjectMapper(); + public GameRoom(List players, UserServiceImpl userService) { this.userService = userService; this.players = players.stream() @@ -52,79 +54,85 @@ public class GameRoom { case InfoRequest: sendAllInfoRequest(message); break; + case ShowFieldInfo: + sendFieldInfo(message); + break; } } + private void sendFieldInfo(BasicMessage message) { + //sendMessage(message.getUid(), WebSocketMessageType.ShowFieldInfo, ); + } + private void sendAllInfoRequest(BasicMessage message) { - try { - ObjectMapper om = new ObjectMapper(); - List top = new ArrayList<>(); - List right = new ArrayList<>(); - List bottom = new ArrayList<>(); - List left = new ArrayList<>(); + List top = new ArrayList<>(); + List right = new ArrayList<>(); + List bottom = new ArrayList<>(); + List left = new ArrayList<>(); - for( int i = 0; i < 9; i++ ) { - top.add(new BoardTile(UUID.randomUUID().toString(), 2 + i, 1000, "", "/static/images/7up.png", "ffffff", "f5f5f5")); - } - - for( int i = 0; i < 9; i++ ) { - right.add(new BoardTile(UUID.randomUUID().toString(), i, 1400, "", "/static/images/fanta.png", "bbbbbb", "f5f5f5")); - } - - for( int i = 0; i < 9; i++ ) { - bottom.add(new BoardTile(UUID.randomUUID().toString(), 2 + i, 1800, "", "/static/images/cola.png", "eeeeee", "f5f5f5")); - } - - for( int i = 10; i >= 2; i-- ) { - left.add(new BoardTile(UUID.randomUUID().toString(), i, 2200, "", "/static/images/beeline.png", "000000", "f5f5f5")); - } - - - - List corners = new ArrayList<>(); - corners.add(new CornerTile("/static/images/start.png")); - corners.add(new CornerTile("/static/images/injail.png")); - corners.add(new CornerTile("/static/images/parking.png")); - corners.add(new CornerTile("/static/images/gotojail.png")); - - BoardGUI boardGUI = new BoardGUI(top, right, bottom, left, corners); - sendMessage(message.getUid(), WebSocketMessageType.PlayersList, om.writeValueAsString(players)); - sendMessage(message.getUid(), WebSocketMessageType.BoardGUI, om.writeValueAsString(boardGUI)); - left.get(2).setCost(12345); - left.get(2).setImg("/static/images/fanta.png"); - left.get(2).setColor("bcbcbc"); - left.get(2).setStars("★★★"); - left.get(2).setOwnerColor("fffbbb"); - sendMessage(message.getUid(), WebSocketMessageType.ChangeBoardTileState, om.writeValueAsString(left.get(2))); - - Chip red = new Chip(2L, 10, 9, "#ff0000"); - Chip green = new Chip(3L, 10, 10, "#00ff00"); - Chip blue = new Chip(4L, 0, 5, "#0000ff"); - Chip white = new Chip(5L, 0, 5, "#ffffff"); - Chip black = new Chip(6L, 0, 5, "#000000"); - - sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(red)); - sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(green)); - sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(blue)); - sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(white)); - sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(black)); - - red.setY(10); - sendMessage(message.getUid(), WebSocketMessageType.ChipMove, om.writeValueAsString(red)); - - sendMessage(message.getUid(), WebSocketMessageType.PlayerColor, om.writeValueAsString(new PlayerColor(2L, "#ff0000"))); - } catch (JsonProcessingException e) { - log.error(e.getMessage(), e); + for( int i = 0; i < 9; i++ ) { + top.add(new BoardTile(UUID.randomUUID().toString(), 2 + i, 1000, "", "/static/images/7up.png", "ffffff", "f5f5f5")); } + + for( int i = 0; i < 9; i++ ) { + right.add(new BoardTile(UUID.randomUUID().toString(), i, 1400, "", "/static/images/fanta.png", "bbbbbb", "f5f5f5")); + } + + for( int i = 0; i < 9; i++ ) { + bottom.add(new BoardTile(UUID.randomUUID().toString(), 2 + i, 1800, "", "/static/images/cola.png", "eeeeee", "f5f5f5")); + } + + for( int i = 10; i >= 2; i-- ) { + left.add(new BoardTile(UUID.randomUUID().toString(), i, 2200, "", "/static/images/beeline.png", "000000", "f5f5f5")); + } + + + + List corners = new ArrayList<>(); + corners.add(new CornerTile("/static/images/start.png")); + corners.add(new CornerTile("/static/images/injail.png")); + corners.add(new CornerTile("/static/images/parking.png")); + corners.add(new CornerTile("/static/images/gotojail.png")); + + BoardGUI boardGUI = new BoardGUI(top, right, bottom, left, corners); + sendMessage(message.getUid(), WebSocketMessageType.PlayersList, players); + sendMessage(message.getUid(), WebSocketMessageType.BoardGUI, boardGUI); + left.get(2).setCost(12345); + left.get(2).setImg("/static/images/fanta.png"); + left.get(2).setColor("bcbcbc"); + left.get(2).setStars("★★★"); + left.get(2).setOwnerColor("fffbbb"); + sendMessage(message.getUid(), WebSocketMessageType.ChangeBoardTileState, left.get(2)); + + Chip red = new Chip(2L, 10, 9, "#ff0000"); + Chip green = new Chip(3L, 10, 10, "#00ff00"); + Chip blue = new Chip(4L, 0, 5, "#0000ff"); + Chip white = new Chip(5L, 0, 5, "#ffffff"); + Chip black = new Chip(6L, 0, 5, "#000000"); + + sendMessage(message.getUid(), WebSocketMessageType.AssignChip, red); + sendMessage(message.getUid(), WebSocketMessageType.AssignChip, green); + sendMessage(message.getUid(), WebSocketMessageType.AssignChip, blue); + sendMessage(message.getUid(), WebSocketMessageType.AssignChip, white); + sendMessage(message.getUid(), WebSocketMessageType.AssignChip, black); + + red.setY(10); + sendMessage(message.getUid(), WebSocketMessageType.ChipMove, red); + + 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)); } - private void sendMessage(Long userId, WebSocketMessageType type, String message) { + private void sendMessage(Long userId, WebSocketMessageType type, Object o) { try { if (socks.get(userId).isOpen()) socks.get(userId).sendMessage( new TextMessage( - new ObjectMapper().writeValueAsString( - new ResponseMessage(type, message) + om.writeValueAsString( + new ResponseMessage(type, om.writeValueAsString(o)) ) ) ); diff --git a/src/main/java/com/alterdekim/game/websocket/message/WebSocketMessageType.java b/src/main/java/com/alterdekim/game/websocket/message/WebSocketMessageType.java index 338f948..a3f4188 100644 --- a/src/main/java/com/alterdekim/game/websocket/message/WebSocketMessageType.java +++ b/src/main/java/com/alterdekim/game/websocket/message/WebSocketMessageType.java @@ -7,5 +7,8 @@ public enum WebSocketMessageType { ChangeBoardTileState, AssignChip, ChipMove, - PlayerColor + PlayerColor, + ShowDialog, + HideDialog, + ShowFieldInfo }