From 58eafa9e6a1b89fe9938acff963ebeabc11e3e41 Mon Sep 17 00:00:00 2001 From: Settel Date: Thu, 12 Aug 2021 23:41:47 +0200 Subject: [PATCH] send game state to client --- server/src/game/game.go | 1 + server/src/game/populateSyncDataCb.go | 2 ++ server/src/game/struct.go | 6 ++++++ server/src/syncdata/syncdata.go | 1 + 4 files changed, 10 insertions(+) diff --git a/server/src/game/game.go b/server/src/game/game.go index e4559da..6ef34cc 100644 --- a/server/src/game/game.go +++ b/server/src/game/game.go @@ -22,6 +22,7 @@ func NewGameFromFile(id, fileName string) (*Game, error) { name: gmJson.Name, eng: engine.NewEngine(), players: make(map[string]playerInfo), + state: STATE_IDLE, } go gm.eng.Run(gm.populateSyncDataCb) diff --git a/server/src/game/populateSyncDataCb.go b/server/src/game/populateSyncDataCb.go index a4a2e77..93d3c41 100644 --- a/server/src/game/populateSyncDataCb.go +++ b/server/src/game/populateSyncDataCb.go @@ -13,6 +13,8 @@ func (gm *Game) populatePlayers(syncData *syncdata.SyncData) { defer gm.mu.Unlock() syncData.GameInfo.GameId = gm.id + syncData.GameInfo.State = gm.state + players := make([]syncdata.PlayerInfo, 0) for _, p := range gm.players { if p.isPlaying { diff --git a/server/src/game/struct.go b/server/src/game/struct.go index d1b0af4..2a0776a 100644 --- a/server/src/game/struct.go +++ b/server/src/game/struct.go @@ -5,6 +5,11 @@ import ( "sync" ) +const ( + STATE_IDLE = "idle" + STATE_ENTER_STATEMENTS = "enter-statements" +) + type playerInfo struct { id string name string @@ -18,6 +23,7 @@ type Game struct { name string players map[string]playerInfo eng *engine.Engine + state string } type GameJson struct { diff --git a/server/src/syncdata/syncdata.go b/server/src/syncdata/syncdata.go index 14d71f8..d19fbf8 100644 --- a/server/src/syncdata/syncdata.go +++ b/server/src/syncdata/syncdata.go @@ -8,6 +8,7 @@ type PlayerInfo struct { type GameInfo struct { GameId string `json:"id"` + State string `json:"state"` Players []PlayerInfo `json:"players"` }