stub codename trial, accuse events
parent
4abac89472
commit
58fae19522
|
|
@ -239,6 +239,14 @@ type (
|
||||||
Timestamp time.Time
|
Timestamp time.Time
|
||||||
ID string
|
ID string
|
||||||
}
|
}
|
||||||
|
EventCodenameAccusal struct {
|
||||||
|
Type EventType
|
||||||
|
Timestamp time.Time
|
||||||
|
}
|
||||||
|
EventCodenameTrial struct {
|
||||||
|
Type EventType
|
||||||
|
Timestamp time.Time
|
||||||
|
}
|
||||||
AllKillWords map[string]KillWords
|
AllKillWords map[string]KillWords
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -248,6 +256,8 @@ const (
|
||||||
GameComplete
|
GameComplete
|
||||||
AssignmentRotation
|
AssignmentRotation
|
||||||
GameReset
|
GameReset
|
||||||
|
CodenameAccusal
|
||||||
|
CodenameTrial
|
||||||
)
|
)
|
||||||
|
|
||||||
type Event interface{ event() }
|
type Event interface{ event() }
|
||||||
|
|
@ -257,6 +267,8 @@ func (EventPlayerLeave) event() {}
|
||||||
func (EventGameComplete) event() {}
|
func (EventGameComplete) event() {}
|
||||||
func (EventAssignmentRotation) event() {}
|
func (EventAssignmentRotation) event() {}
|
||||||
func (EventGameReset) event() {}
|
func (EventGameReset) event() {}
|
||||||
|
func (EventCodenameAccusal) event() {}
|
||||||
|
func (EventCodenameTrial) event() {}
|
||||||
|
|
||||||
func EventWithTime(event Event, t time.Time) Event {
|
func EventWithTime(event Event, t time.Time) Event {
|
||||||
switch e := event.(type) {
|
switch e := event.(type) {
|
||||||
|
|
@ -275,6 +287,12 @@ func EventWithTime(event Event, t time.Time) Event {
|
||||||
case EventGameReset:
|
case EventGameReset:
|
||||||
e.Timestamp = t
|
e.Timestamp = t
|
||||||
event = e
|
event = e
|
||||||
|
case EventCodenameAccusal:
|
||||||
|
e.Timestamp = t
|
||||||
|
event = e
|
||||||
|
case EventCodenameTrial:
|
||||||
|
e.Timestamp = t
|
||||||
|
event = e
|
||||||
}
|
}
|
||||||
return event
|
return event
|
||||||
}
|
}
|
||||||
|
|
@ -329,6 +347,14 @@ func parseEvent(b []byte, timestamp time.Time) (Event, error) {
|
||||||
var v EventGameReset
|
var v EventGameReset
|
||||||
err := json.Unmarshal(b, &v)
|
err := json.Unmarshal(b, &v)
|
||||||
return EventWithTime(v, timestamp), err
|
return EventWithTime(v, timestamp), err
|
||||||
|
case CodenameAccusal:
|
||||||
|
var v EventCodenameAccusal
|
||||||
|
err := json.Unmarshal(b, &v)
|
||||||
|
return EventWithTime(v, timestamp), err
|
||||||
|
case CodenameTrial:
|
||||||
|
var v EventCodenameTrial
|
||||||
|
err := json.Unmarshal(b, &v)
|
||||||
|
return EventWithTime(v, timestamp), err
|
||||||
}
|
}
|
||||||
return nil, fmt.Errorf("unknown event type %d: %s", peek.Type, b)
|
return nil, fmt.Errorf("unknown event type %d: %s", peek.Type, b)
|
||||||
}
|
}
|
||||||
|
|
@ -374,6 +400,10 @@ func (games Games) GameState(ctx context.Context, id string) (GameState, error)
|
||||||
player.KillWords = v
|
player.KillWords = v
|
||||||
result.Players[k] = player
|
result.Players[k] = player
|
||||||
}
|
}
|
||||||
|
case EventCodenameAccusal:
|
||||||
|
return GameState{}, fmt.Errorf("not impl: accusal: %+v", e)
|
||||||
|
case EventCodenameTrial:
|
||||||
|
return GameState{}, fmt.Errorf("not impl: trial: %+v", e)
|
||||||
case EventGameReset:
|
case EventGameReset:
|
||||||
return games.GameState(ctx, e.ID)
|
return games.GameState(ctx, e.ID)
|
||||||
default:
|
default:
|
||||||
|
|
@ -711,7 +741,3 @@ func (games Games) createEvent(ctx context.Context, id string, v any) error {
|
||||||
) VALUES (?, ?, ?)
|
) VALUES (?, ?, ?)
|
||||||
`, id, time.Now(), payload)
|
`, id, time.Now(), payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (games *Games) Reset(ctx context.Context, gid string) error {
|
|
||||||
return games.CreateEventGameReset(ctx, gid)
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -150,7 +150,7 @@ func TestGames(t *testing.T) {
|
||||||
t.Fatal("state.Completed is zero")
|
t.Fatal("state.Completed is zero")
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := games.Reset(ctx, id); err != nil {
|
if err := games.CreateEventGameReset(ctx, id); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
} else if state, err := games.GameState(ctx, id); err != nil {
|
} else if state, err := games.GameState(ctx, id); err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
|
|
|
||||||
|
|
@ -116,7 +116,7 @@ func (ugs *UserGameServer) listen(ctx context.Context, reader func(context.Conte
|
||||||
if gameState, err := ugs.games.GameState(ctx, ugs.ID); err != nil {
|
if gameState, err := ugs.games.GameState(ctx, ugs.ID); err != nil {
|
||||||
return err
|
return err
|
||||||
} else if gameState.Completed.IsZero() {
|
} else if gameState.Completed.IsZero() {
|
||||||
} else if err := ugs.games.Reset(ctx, ugs.ID); err != nil {
|
} else if err := ugs.games.CreateEventGameReset(ctx, ugs.ID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue