aa765a0c06
CI / changes (pull_request) Successful in 3s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 14s
CI / ui (pull_request) Successful in 49s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m12s
New Game's quick game gains an explicit opponent selector — 🤖 AI (default) or 👤 Random player. AI starts a game seated with a pooled robot that joins and moves at once: no per-move timeout (a 7-day inactivity loss reusing the turn-timeout sweeper), chat/nudge disabled, no statistics, the opponent shown as 🤖 everywhere. The random path (disguised robot) is unchanged. Driven by one game flag (games.vs_ai), set only on AI-started games so the disguised path is never revealed; Matchmaker.StartVsAI seats the robot directly (no open pool); the robot replies event-driven via the game service's after-commit/after-create hook. Wire: vs_ai on EnqueueRequest + GameView.
37 lines
852 B
Go
37 lines
852 B
Go
//
|
|
// Code generated by go-jet DO NOT EDIT.
|
|
//
|
|
// WARNING: Changes to this file may cause incorrect behavior
|
|
// and will be lost if the code is regenerated
|
|
//
|
|
|
|
package model
|
|
|
|
import (
|
|
"github.com/google/uuid"
|
|
"time"
|
|
)
|
|
|
|
type Games struct {
|
|
GameID uuid.UUID `sql:"primary_key"`
|
|
Variant string
|
|
DictVersion string
|
|
Seed int64
|
|
Status string
|
|
Players int16
|
|
ToMove int16
|
|
TurnStartedAt time.Time
|
|
TurnTimeoutSecs int32
|
|
HintsAllowed bool
|
|
HintsPerPlayer int16
|
|
MoveCount int32
|
|
EndReason *string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
FinishedAt *time.Time
|
|
OpenDeadlineAt *time.Time
|
|
DropoutTiles string
|
|
MultipleWordsPerTurn bool
|
|
VsAi bool
|
|
}
|