diff --git a/components/createroomform.html b/components/createroomform.html index a347c61..3e1df40 100644 --- a/components/createroomform.html +++ b/components/createroomform.html @@ -5,7 +5,7 @@ or
-
+



diff --git a/components/room.html b/components/room.html index 6c648de..9feab4f 100644 --- a/components/room.html +++ b/components/room.html @@ -57,7 +57,7 @@
- sse div + bot thoughts
{{template "cardtable" .Room}} diff --git a/handlers/game.go b/handlers/game.go index d0d5217..df76741 100644 --- a/handlers/game.go +++ b/handlers/game.go @@ -12,10 +12,16 @@ import ( ) func HandleCreateRoom(w http.ResponseWriter, r *http.Request) { + turnTimeStr := r.PostFormValue("game_time") + ttU64, err := strconv.ParseUint(turnTimeStr, 10, 64) + if err != nil { + log.Warn("failed to parse turn time", "game_time", turnTimeStr) + } // parse payload payload := &models.RoomReq{ - RoomPass: r.PostFormValue("room_pass"), - RoomName: r.PostFormValue("room_name"), + RoomPass: r.PostFormValue("room_pass"), + Language: r.PostFormValue("language"), + RoundTime: uint32(ttU64), } // create a room room, err := createRoom(r.Context(), payload) diff --git a/models/main.go b/models/main.go index 13000fb..3d8580a 100644 --- a/models/main.go +++ b/models/main.go @@ -71,7 +71,6 @@ type CardMark struct { type Room struct { ID string `json:"id" db:"id"` CreatedAt time.Time `json:"created_at" db:"created_at"` // limit? - RoomPass string `json:"room_pass"` RoomLink string CreatorName string `json:"creator_name"` ActionHistory []Action @@ -97,6 +96,7 @@ type Room struct { Mark CardMark // card is marked // needed for debug LogJournal []string + Settings GameSettings } func (r *Room) ClearMarks() { @@ -325,11 +325,10 @@ type WordCard struct { } type GameSettings struct { - IsRunning bool `json:"is_running"` Language string `json:"language" example:"en" form:"language"` - RoundTime int32 `json:"round_time"` - ProgressPct uint32 `json:"progress_pct"` - IsOver bool + RoomPass string `json:"room_pass"` + TurnSeconds uint32 + RoundTime uint32 } // ===== @@ -337,20 +336,26 @@ type GameSettings struct { type RoomReq struct { // is not user or not unique RoomPass string `json:"room_pass" form:"room_pass"` - RoomName string `json:"room_name" form:"room_name"` // GameSettings + Language string `json:"language" form:"language"` + RoundTime uint32 } func (rr *RoomReq) CreateRoom(creator string) *Room { roomID := xid.New().String() + settings := GameSettings{ + Language: rr.Language, + RoomPass: rr.RoomPass, + RoundTime: rr.RoundTime, + } return &Room{ // RoomName: , - RoomPass: rr.RoomPass, ID: roomID, CreatedAt: time.Now(), // PlayerList: []string{creator}, CreatorName: creator, BotMap: make(map[string]BotPlayer), + Settings: settings, } } diff --git a/todos.md b/todos.md index 8667539..f058de3 100644 --- a/todos.md +++ b/todos.md @@ -13,6 +13,10 @@ - ways to remove bots from teams; + - mark cards (instead of opening them (right click?); + - on end of turn clear all the marks; + +- different files for each supported lang; + +- sse div to bot thinking; + +- simplify mime prompt; + +- redo card .revealed use: it should mean that card is revealed for everybody, while mime should be able to see cards as is; + - better styles and fluff; - common auth system between sites; === @@ -22,11 +26,8 @@ - ended turn action to backlog; === - clear indication that model (llm) is thinking / answered; -- different files for each supported lang; - possibly turn markings into parts of names of users (first three letters?); -- sse div to bot thinking; -- simplify mime prompt; -- redo card .revealed use: it should mean that card is revealed for everybody, while mime should be able to see cards as is; +- at game creation list languages and support them at backend; #### sse points - clue sse update;