action dialogs
This commit is contained in:
parent
100e2918b1
commit
400e7fea33
@ -0,0 +1,13 @@
|
|||||||
|
package com.alterdekim.game.component.game;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Getter
|
||||||
|
public class ActionDialog<T> {
|
||||||
|
private String dialogTitle;
|
||||||
|
private String dialogDescription;
|
||||||
|
private ActionDialogType actionDialogType;
|
||||||
|
private T actionDialogBody;
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
package com.alterdekim.game.component.game;
|
||||||
|
|
||||||
|
public enum ActionDialogType {
|
||||||
|
Buttons,
|
||||||
|
Range
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -31,6 +31,8 @@ public class GameRoom {
|
|||||||
|
|
||||||
private List<BoardField> boardFields;
|
private List<BoardField> boardFields;
|
||||||
|
|
||||||
|
private ObjectMapper om = new ObjectMapper();
|
||||||
|
|
||||||
public GameRoom(List<RoomPlayer> players, UserServiceImpl userService) {
|
public GameRoom(List<RoomPlayer> players, UserServiceImpl userService) {
|
||||||
this.userService = userService;
|
this.userService = userService;
|
||||||
this.players = players.stream()
|
this.players = players.stream()
|
||||||
@ -52,12 +54,17 @@ public class GameRoom {
|
|||||||
case InfoRequest:
|
case InfoRequest:
|
||||||
sendAllInfoRequest(message);
|
sendAllInfoRequest(message);
|
||||||
break;
|
break;
|
||||||
|
case ShowFieldInfo:
|
||||||
|
sendFieldInfo(message);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendFieldInfo(BasicMessage message) {
|
||||||
|
//sendMessage(message.getUid(), WebSocketMessageType.ShowFieldInfo, );
|
||||||
|
}
|
||||||
|
|
||||||
private void sendAllInfoRequest(BasicMessage message) {
|
private void sendAllInfoRequest(BasicMessage message) {
|
||||||
try {
|
|
||||||
ObjectMapper om = new ObjectMapper();
|
|
||||||
List<BoardTile> top = new ArrayList<>();
|
List<BoardTile> top = new ArrayList<>();
|
||||||
List<BoardTile> right = new ArrayList<>();
|
List<BoardTile> right = new ArrayList<>();
|
||||||
List<BoardTile> bottom = new ArrayList<>();
|
List<BoardTile> bottom = new ArrayList<>();
|
||||||
@ -88,14 +95,14 @@ public class GameRoom {
|
|||||||
corners.add(new CornerTile("/static/images/gotojail.png"));
|
corners.add(new CornerTile("/static/images/gotojail.png"));
|
||||||
|
|
||||||
BoardGUI boardGUI = new BoardGUI(top, right, bottom, left, corners);
|
BoardGUI boardGUI = new BoardGUI(top, right, bottom, left, corners);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.PlayersList, om.writeValueAsString(players));
|
sendMessage(message.getUid(), WebSocketMessageType.PlayersList, players);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.BoardGUI, om.writeValueAsString(boardGUI));
|
sendMessage(message.getUid(), WebSocketMessageType.BoardGUI, boardGUI);
|
||||||
left.get(2).setCost(12345);
|
left.get(2).setCost(12345);
|
||||||
left.get(2).setImg("/static/images/fanta.png");
|
left.get(2).setImg("/static/images/fanta.png");
|
||||||
left.get(2).setColor("bcbcbc");
|
left.get(2).setColor("bcbcbc");
|
||||||
left.get(2).setStars("★★★");
|
left.get(2).setStars("★★★");
|
||||||
left.get(2).setOwnerColor("fffbbb");
|
left.get(2).setOwnerColor("fffbbb");
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.ChangeBoardTileState, om.writeValueAsString(left.get(2)));
|
sendMessage(message.getUid(), WebSocketMessageType.ChangeBoardTileState, left.get(2));
|
||||||
|
|
||||||
Chip red = new Chip(2L, 10, 9, "#ff0000");
|
Chip red = new Chip(2L, 10, 9, "#ff0000");
|
||||||
Chip green = new Chip(3L, 10, 10, "#00ff00");
|
Chip green = new Chip(3L, 10, 10, "#00ff00");
|
||||||
@ -103,28 +110,29 @@ public class GameRoom {
|
|||||||
Chip white = new Chip(5L, 0, 5, "#ffffff");
|
Chip white = new Chip(5L, 0, 5, "#ffffff");
|
||||||
Chip black = new Chip(6L, 0, 5, "#000000");
|
Chip black = new Chip(6L, 0, 5, "#000000");
|
||||||
|
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(red));
|
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, red);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(green));
|
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, green);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(blue));
|
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, blue);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(white));
|
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, white);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, om.writeValueAsString(black));
|
sendMessage(message.getUid(), WebSocketMessageType.AssignChip, black);
|
||||||
|
|
||||||
red.setY(10);
|
red.setY(10);
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.ChipMove, om.writeValueAsString(red));
|
sendMessage(message.getUid(), WebSocketMessageType.ChipMove, red);
|
||||||
|
|
||||||
sendMessage(message.getUid(), WebSocketMessageType.PlayerColor, om.writeValueAsString(new PlayerColor(2L, "#ff0000")));
|
sendMessage(message.getUid(), WebSocketMessageType.PlayerColor, new PlayerColor(2L, "#ff0000"));
|
||||||
} catch (JsonProcessingException e) {
|
|
||||||
log.error(e.getMessage(), e);
|
List<DialogButton> 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 {
|
try {
|
||||||
if (socks.get(userId).isOpen())
|
if (socks.get(userId).isOpen())
|
||||||
socks.get(userId).sendMessage(
|
socks.get(userId).sendMessage(
|
||||||
new TextMessage(
|
new TextMessage(
|
||||||
new ObjectMapper().writeValueAsString(
|
om.writeValueAsString(
|
||||||
new ResponseMessage(type, message)
|
new ResponseMessage(type, om.writeValueAsString(o))
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -7,5 +7,8 @@ public enum WebSocketMessageType {
|
|||||||
ChangeBoardTileState,
|
ChangeBoardTileState,
|
||||||
AssignChip,
|
AssignChip,
|
||||||
ChipMove,
|
ChipMove,
|
||||||
PlayerColor
|
PlayerColor,
|
||||||
|
ShowDialog,
|
||||||
|
HideDialog,
|
||||||
|
ShowFieldInfo
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user