grr how do trial

main
Bel LaPointe 2024-12-15 19:03:35 -07:00
parent 58fae19522
commit c6ffa12354
1 changed files with 19 additions and 4 deletions

View File

@ -240,8 +240,11 @@ type (
ID string ID string
} }
EventCodenameAccusal struct { EventCodenameAccusal struct {
Type EventType Type EventType
Timestamp time.Time Timestamp time.Time
Prosecutor string
Killer string
Word string
} }
EventCodenameTrial struct { EventCodenameTrial struct {
Type EventType Type EventType
@ -367,6 +370,8 @@ func (games Games) GameState(ctx context.Context, id string) (GameState, error)
return result, err return result, err
} }
var stateBeforeAccusal *GameState
for _, event := range events { for _, event := range events {
switch e := event.(type) { switch e := event.(type) {
case EventPlayerJoin: case EventPlayerJoin:
@ -401,9 +406,19 @@ func (games Games) GameState(ctx context.Context, id string) (GameState, error)
result.Players[k] = player result.Players[k] = player
} }
case EventCodenameAccusal: case EventCodenameAccusal:
return GameState{}, fmt.Errorf("not impl: accusal: %+v", e) if stateBeforeAccusal == nil {
stateBeforeAccusal = &result
result = *stateBeforeAccusal
return GameState{}, fmt.Errorf("not impl: accusal: %+v", e)
}
case EventCodenameTrial: case EventCodenameTrial:
return GameState{}, fmt.Errorf("not impl: trial: %+v", e) if stateBeforeAccusal != nil {
result = *stateBeforeAccusal
stateBeforeAccusal = nil
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: