Feat: add exit room

This commit is contained in:
Grail Finder
2025-05-11 13:59:25 +03:00
parent cf5643227b
commit f2aee1469b
7 changed files with 55 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package models
import (
"golias/utils"
"time"
"github.com/rs/xid"
@ -200,3 +201,19 @@ type FullInfo struct {
Room *Room
List []*Room
}
func (f *FullInfo) ExitRoom() *Room {
f.Room.PlayerList = utils.RemoveFromSlice(f.State.Username, f.Room.PlayerList)
f.Room.RedTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.RedTeam.Guessers)
f.Room.BlueTeam.Guessers = utils.RemoveFromSlice(f.State.Username, f.Room.BlueTeam.Guessers)
if f.Room.RedTeam.Mime == f.State.Username {
f.Room.RedTeam.Mime = ""
}
if f.Room.BlueTeam.Mime == f.State.Username {
f.Room.BlueTeam.Mime = ""
}
f.State.ExitRoom()
resp := f.Room
f.Room = nil
return resp
}

View File

@ -47,6 +47,12 @@ type UserState struct {
Role UserRole
}
func (u *UserState) ExitRoom() {
u.RoomID = ""
u.Team = UserTeamNone
u.Role = UserRoleNone
}
func MakeTestState(creatorName string) *FullInfo {
cards := []WordCard{
{Word: "hamster", Color: "blue"},