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 ObjectMapper om = new ObjectMapper();
|
||||
|
||||
public GameRoom(List<RoomPlayer> 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<BoardTile> top = new ArrayList<>();
|
||||
List<BoardTile> right = new ArrayList<>();
|
||||
List<BoardTile> bottom = new ArrayList<>();
|
||||
List<BoardTile> left = new ArrayList<>();
|
||||
List<BoardTile> top = new ArrayList<>();
|
||||
List<BoardTile> right = new ArrayList<>();
|
||||
List<BoardTile> bottom = new ArrayList<>();
|
||||
List<BoardTile> 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<CornerTile> 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<CornerTile> 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<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 {
|
||||
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))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
@ -7,5 +7,8 @@ public enum WebSocketMessageType {
|
||||
ChangeBoardTileState,
|
||||
AssignChip,
|
||||
ChipMove,
|
||||
PlayerColor
|
||||
PlayerColor,
|
||||
ShowDialog,
|
||||
HideDialog,
|
||||
ShowFieldInfo
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user