Chore: refactor; mark words [WIP]
This commit is contained in:
@ -8,7 +8,6 @@ import (
|
||||
"gralias/broker"
|
||||
"gralias/llmapi"
|
||||
"gralias/models"
|
||||
"gralias/utils"
|
||||
"gralias/wordloader"
|
||||
"strings"
|
||||
)
|
||||
@ -173,22 +172,22 @@ func getFullInfoByCtx(ctx context.Context) (*models.FullInfo, error) {
|
||||
return resp, nil
|
||||
}
|
||||
|
||||
func leaveRole(fi *models.FullInfo) {
|
||||
fi.Room.RedTeam.Guessers = utils.RemoveFromSlice(fi.State.Username, fi.Room.RedTeam.Guessers)
|
||||
fi.Room.BlueTeam.Guessers = utils.RemoveFromSlice(fi.State.Username, fi.Room.BlueTeam.Guessers)
|
||||
if fi.Room.RedTeam.Mime == fi.State.Username {
|
||||
fi.Room.RedTeam.Mime = ""
|
||||
}
|
||||
if fi.Room.BlueTeam.Mime == fi.State.Username {
|
||||
fi.Room.BlueTeam.Mime = ""
|
||||
}
|
||||
}
|
||||
// // DEPRECATED
|
||||
// func leaveRole(fi *models.FullInfo) {
|
||||
// fi.Room.RedTeam.Guessers = utils.RemoveFromSlice(fi.State.Username, fi.Room.RedTeam.Guessers)
|
||||
// fi.Room.BlueTeam.Guessers = utils.RemoveFromSlice(fi.State.Username, fi.Room.BlueTeam.Guessers)
|
||||
// if fi.Room.RedTeam.Mime == fi.State.Username {
|
||||
// fi.Room.RedTeam.Mime = ""
|
||||
// }
|
||||
// if fi.Room.BlueTeam.Mime == fi.State.Username {
|
||||
// fi.Room.BlueTeam.Mime = ""
|
||||
// }
|
||||
// }
|
||||
|
||||
func joinTeam(ctx context.Context, role, team string) (*models.FullInfo, error) {
|
||||
// get username
|
||||
fi, _ := getFullInfoByCtx(ctx)
|
||||
// leave gueesers if present
|
||||
leaveRole(fi)
|
||||
fi.Room.RemovePlayer(fi.State.Username)
|
||||
// get room
|
||||
if role == "mime" {
|
||||
if team == "blue" {
|
||||
@ -367,3 +366,31 @@ func recoverPlayer(pm map[string]string) error {
|
||||
}
|
||||
return saveState(pm["Username"], us)
|
||||
}
|
||||
|
||||
// validateMove checks if it is players turn
|
||||
func validateMove(fi *models.FullInfo, ur models.UserRole) error {
|
||||
if fi.State.Role != ur {
|
||||
err := fmt.Errorf("need to be %s to make that action", ur)
|
||||
return err
|
||||
}
|
||||
// whos move it is?
|
||||
if fi.State.Team != models.UserTeam(fi.Room.TeamTurn) {
|
||||
err := errors.New("not your team's move")
|
||||
return err
|
||||
}
|
||||
switch ur {
|
||||
case models.UserRoleGuesser:
|
||||
if !fi.Room.MimeDone {
|
||||
err := errors.New("wait for the mime to give a clue")
|
||||
return err
|
||||
}
|
||||
case models.UserRoleMime:
|
||||
if fi.Room.MimeDone {
|
||||
err := errors.New("clue was already given")
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("uknown user role: %s", ur)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user