Enha: wait for mime clue

This commit is contained in:
Grail Finder
2025-05-12 19:41:34 +03:00
parent da8131a0a4
commit f752d2a162
5 changed files with 16 additions and 10 deletions

View File

@ -45,15 +45,17 @@
<div>
{{if and (eq .State.Role "guesser") (eq .State.Team .Room.TeamTurn)}}
<button hx-get="/end-turn" hx-target="#room" class="bg-amber-100 text-black px-4 py-2 rounded">End Turn</button>
{{else if eq .State.Role "mime"}}
{{else if and (eq .State.Role "mime") (not .Room.MimeDone)}}
{{template "mimeclue"}}
{{end}}
</div>
<div hx-get="/actionhistory" hx-trigger="sse:backlog_{{.Room.ID}}">
{{template "actionhistory" .Room.ActionHistory}}
</div>
{{if not .Room.IsRunning}}
<div id="exitbtn">
<button button id="exit-room-btn" type="submit" class="justify-center rounded-md bg-indigo-600 px-3 py-1.5 text-sm font-semibold leading-6 text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600" hx-get="/room/exit" hx-target="#ancestor">Exit Room</button>
</div>
{{end}}
</div>
{{end}}

View File

@ -51,6 +51,10 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) {
abortWithError(w, err.Error())
return
}
if !fi.Room.MimeDone {
abortWithError(w, "wait for the clue")
return
}
color, exists := roundWords[word]
log.Debug("got show-color request", "word", word, "color", color)
if !exists {

View File

@ -40,12 +40,6 @@ func HandleCreateRoom(w http.ResponseWriter, r *http.Request) {
return
}
notify(models.NotifyRoomListUpdate, "")
// send msg of created room
// h.Broker.Notifier <- broker.NotificationEvent{
// EventName: models.MsgRoomListUpdate,
// Payload: fmt.Sprintf("%s created a room named %s", r.CreatorName, r.RoomName),
// }
// return html
tmpl, err := template.ParseGlob("components/*.html")
if err != nil {
abortWithError(w, err.Error())

View File

@ -94,6 +94,10 @@ func HandleExit(w http.ResponseWriter, r *http.Request) {
abortWithError(w, err.Error())
return
}
if fi.Room.IsRunning {
abortWithError(w, "cannot leave when game is running")
return
}
var creatorLeft bool
if fi.Room.CreatorName == fi.State.Username {
creatorLeft = true

View File

@ -1,7 +1,9 @@
### feats
- ability to leave room;
- close room if creator left (or pass role to other player);
- notify on creation of new room;
- auto close room if nothing is going on there (hmm) for ~1h;
- words database (file) load and form random 25 words;
- mark cards (instead of opening them (right click?);
- invite link;
- login with invite link;
#### sse points
- clue sse update;