diff --git a/event.go b/event.go index f3bf8d6..fe83a24 100644 --- a/event.go +++ b/event.go @@ -78,8 +78,9 @@ type EventBoard struct { type EventRolled struct { Event - Roll1 int - Roll2 int + Roll1 int + Roll2 int + Selected bool // Whether the roll is selected by the player (used in acey-deucey games). } type EventFailedRoll struct { diff --git a/pkg/server/server.go b/pkg/server/server.go index 366251f..7132de6 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -249,6 +249,7 @@ func (s *server) listenWebSocket(address string) { func (s *server) handleLocal(conns chan net.Conn) { for { local, remote := net.Pipe() + conns <- local go s.handleConnection(remote) } @@ -1351,6 +1352,16 @@ COMMANDS: clientGame.NextTurn(true) clientGame.Roll1, clientGame.Roll2 = doubles, doubles clientGame.Reroll = true + + clientGame.eachClient(func(client *serverClient) { + ev := &bgammon.EventRolled{ + Roll1: clientGame.Roll1, + Roll2: clientGame.Roll2, + Selected: true, + } + ev.Player = string(cmd.client.name) + client.sendEvent(ev) + }) } else if clientGame.Acey && clientGame.Reroll { clientGame.NextTurn(true) clientGame.Roll1, clientGame.Roll2 = 0, 0