aboutsummaryrefslogtreecommitdiffhomepage
path: root/backend/game
diff options
context:
space:
mode:
Diffstat (limited to 'backend/game')
-rw-r--r--backend/game/hub.go7
-rw-r--r--backend/game/message.go12
2 files changed, 18 insertions, 1 deletions
diff --git a/backend/game/hub.go b/backend/game/hub.go
index c73009b..239f5da 100644
--- a/backend/game/hub.go
+++ b/backend/game/hub.go
@@ -170,8 +170,13 @@ func (hub *gameHub) run() {
},
}
}
+ case *playerMessageC2SSubmit:
+ // TODO: assert game state is gaming
+ log.Printf("submit: %v", message.message)
+ // code := msg.Data.Code
+ // TODO
default:
- log.Fatalf("unexpected message type: %T", message.message)
+ log.Printf("unexpected message type: %T", message.message)
}
case <-ticker.C:
if hub.game.state == gameStateStarting {
diff --git a/backend/game/message.go b/backend/game/message.go
index 0b413d6..d4007a3 100644
--- a/backend/game/message.go
+++ b/backend/game/message.go
@@ -14,6 +14,7 @@ const (
playerMessageTypeC2SEntry = "player:c2s:entry"
playerMessageTypeC2SReady = "player:c2s:ready"
playerMessageTypeC2SCode = "player:c2s:code"
+ playerMessageTypeC2SSubmit = "player:c2s:submit"
)
type playerMessageC2SWithClient struct {
@@ -36,6 +37,8 @@ type playerMessageC2SEntry = api.GamePlayerMessageC2SEntry
type playerMessageC2SReady = api.GamePlayerMessageC2SReady
type playerMessageC2SCode = api.GamePlayerMessageC2SCode
type playerMessageC2SCodePayload = api.GamePlayerMessageC2SCodePayload
+type playerMessageC2SSubmit = api.GamePlayerMessageC2SSubmit
+type playerMessageC2SSubmitPayload = api.GamePlayerMessageC2SSubmitPayload
func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error) {
var typ string
@@ -61,6 +64,15 @@ func asPlayerMessageC2S(raw map[string]json.RawMessage) (playerMessageC2S, error
Type: playerMessageTypeC2SCode,
Data: payload,
}, nil
+ case playerMessageTypeC2SSubmit:
+ var payload playerMessageC2SSubmitPayload
+ if err := json.Unmarshal(raw["data"], &payload); err != nil {
+ return nil, err
+ }
+ return &playerMessageC2SSubmit{
+ Type: playerMessageTypeC2SSubmit,
+ Data: payload,
+ }, nil
default:
return nil, fmt.Errorf("unknown message type: %s", typ)
}