Enha: simplier guesser prompt; player team-role recovery
This commit is contained in:
@ -58,10 +58,10 @@ type Room struct {
|
||||
ID string `json:"id" db:"id"`
|
||||
CreatedAt time.Time `json:"created_at" db:"created_at"`
|
||||
// RoomName string `json:"room_name"`
|
||||
RoomPass string `json:"room_pass"`
|
||||
RoomLink string
|
||||
CreatorName string `json:"creator_name"`
|
||||
PlayerList []string `json:"player_list"`
|
||||
RoomPass string `json:"room_pass"`
|
||||
RoomLink string
|
||||
CreatorName string `json:"creator_name"`
|
||||
// PlayerList []string `json:"player_list"`
|
||||
ActionHistory []Action
|
||||
TeamTurn UserTeam
|
||||
RedTeam Team
|
||||
@ -88,6 +88,26 @@ type Room struct {
|
||||
LogJournal []string
|
||||
}
|
||||
|
||||
func (r *Room) GetPlayerByName(name string) (role UserRole, team UserTeam, found bool) {
|
||||
if r.RedTeam.Mime == name {
|
||||
return "mime", "red", true
|
||||
}
|
||||
if r.BlueTeam.Mime == name {
|
||||
return "mime", "blue", true
|
||||
}
|
||||
for _, guesser := range r.RedTeam.Guessers {
|
||||
if guesser == name {
|
||||
return "guesser", "red", true
|
||||
}
|
||||
}
|
||||
for _, guesser := range r.BlueTeam.Guessers {
|
||||
if guesser == name {
|
||||
return "guesser", "blue", true
|
||||
}
|
||||
}
|
||||
return "", "", false
|
||||
}
|
||||
|
||||
func (r *Room) CanStart() error {
|
||||
if r.IsRunning {
|
||||
return errors.New("cannot start; game is already running")
|
||||
@ -230,10 +250,10 @@ func (rr *RoomReq) CreateRoom(creator string) *Room {
|
||||
roomID := xid.New().String()
|
||||
return &Room{
|
||||
// RoomName: ,
|
||||
RoomPass: rr.RoomPass,
|
||||
ID: roomID,
|
||||
CreatedAt: time.Now(),
|
||||
PlayerList: []string{creator},
|
||||
RoomPass: rr.RoomPass,
|
||||
ID: roomID,
|
||||
CreatedAt: time.Now(),
|
||||
// PlayerList: []string{creator},
|
||||
CreatorName: creator,
|
||||
BotMap: make(map[string]BotPlayer),
|
||||
}
|
||||
@ -249,7 +269,7 @@ type FullInfo struct {
|
||||
}
|
||||
|
||||
func (f *FullInfo) ExitRoom() *Room {
|
||||
f.Room.PlayerList = utils.RemoveFromSlice(f.State.Username, f.Room.PlayerList)
|
||||
// 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 {
|
||||
|
Reference in New Issue
Block a user