Fix: stats and marks queries
This commit is contained in:
@ -50,7 +50,6 @@ func HandleShowColor(w http.ResponseWriter, r *http.Request) {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
// color, exists := fi.Room.WCMap[word]
|
||||
color, exists := fi.Room.FindColor(word)
|
||||
if !exists {
|
||||
abortWithError(w, "word is not found")
|
||||
|
@ -76,6 +76,10 @@ func HandleJoinTeam(w http.ResponseWriter, r *http.Request) {
|
||||
abortWithError(w, err.Error())
|
||||
return
|
||||
}
|
||||
if fi.Room == nil {
|
||||
http.Redirect(w, r, "/", 302)
|
||||
return
|
||||
}
|
||||
if fi.Room.IsRunning && role == "mime" {
|
||||
err = errors.New("cannot join as mime when game is running")
|
||||
abortWithError(w, err.Error())
|
||||
|
@ -57,20 +57,20 @@ func updateStatsOnGameOver(ctx context.Context, room *models.Room) {
|
||||
if player.Role == models.UserRoleMime {
|
||||
stats.PlayedAsMime++
|
||||
if stats.PlayedAsMime > 0 {
|
||||
gamesWonAsMime := stats.MimeWinrate * float64(stats.PlayedAsMime-1)
|
||||
gamesWonAsMime := stats.MimeWinrate * float32(stats.PlayedAsMime-1)
|
||||
if player.Team == room.TeamWon {
|
||||
gamesWonAsMime++
|
||||
}
|
||||
stats.MimeWinrate = gamesWonAsMime / float64(stats.PlayedAsMime)
|
||||
stats.MimeWinrate = gamesWonAsMime / float32(stats.PlayedAsMime)
|
||||
}
|
||||
} else if player.Role == models.UserRoleGuesser {
|
||||
stats.PlayedAsGuesser++
|
||||
if stats.PlayedAsGuesser > 0 {
|
||||
gamesWonAsGuesser := stats.GuesserWinrate * float64(stats.PlayedAsGuesser-1)
|
||||
gamesWonAsGuesser := stats.GuesserWinrate * float32(stats.PlayedAsGuesser-1)
|
||||
if player.Team == room.TeamWon {
|
||||
gamesWonAsGuesser++
|
||||
}
|
||||
stats.GuesserWinrate = gamesWonAsGuesser / float64(stats.PlayedAsGuesser)
|
||||
stats.GuesserWinrate = gamesWonAsGuesser / float32(stats.PlayedAsGuesser)
|
||||
}
|
||||
}
|
||||
if err := repo.UpdatePlayerStats(ctx, stats); err != nil {
|
||||
|
Reference in New Issue
Block a user