From 97c79c60e9a656097acc60e378ce8926a5c9626c Mon Sep 17 00:00:00 2001 From: Patrick Fairbank Date: Wed, 19 Sep 2018 01:26:49 -0700 Subject: [PATCH] Show series wins in final score view. --- field/arena_notifiers.go | 35 ++++++++++++++++++++++++++++++++- static/css/audience_display.css | 17 ++++++++++++++++ static/js/audience_display.js | 2 ++ templates/audience_display.html | 5 +++-- 4 files changed, 56 insertions(+), 3 deletions(-) diff --git a/field/arena_notifiers.go b/field/arena_notifiers.go index 13b7a6a..3b08f68 100644 --- a/field/arena_notifiers.go +++ b/field/arena_notifiers.go @@ -6,6 +6,7 @@ package field import ( + "fmt" "github.com/Team254/cheesy-arena/game" "github.com/Team254/cheesy-arena/led" "github.com/Team254/cheesy-arena/model" @@ -156,6 +157,36 @@ func (arena *Arena) generateRealtimeScoreMessage() interface{} { } func (arena *Arena) generateScorePostedMessage() interface{} { + // For elimination matches, summarize the state of the series. + var seriesStatus, seriesLeader string + if arena.SavedMatch.Type == "elimination" { + matches, _ := arena.Database.GetMatchesByElimRoundGroup(arena.SavedMatch.ElimRound, arena.SavedMatch.ElimGroup) + var redWins, blueWins int + for _, match := range matches { + if match.Winner == "R" { + redWins++ + } else if match.Winner == "B" { + blueWins++ + } + } + + if redWins == 2 { + seriesStatus = fmt.Sprintf("Red Wins Series %d-%d", redWins, blueWins) + seriesLeader = "red" + } else if blueWins == 2 { + seriesStatus = fmt.Sprintf("Blue Wins Series %d-%d", blueWins, redWins) + seriesLeader = "blue" + } else if redWins > blueWins { + seriesStatus = fmt.Sprintf("Red Leads Series %d-%d", redWins, blueWins) + seriesLeader = "red" + } else if blueWins > redWins { + seriesStatus = fmt.Sprintf("Blue Leads Series %d-%d", blueWins, redWins) + seriesLeader = "blue" + } else { + seriesStatus = fmt.Sprintf("Series Tied %d-%d", redWins, blueWins) + } + } + return &struct { MatchType string Match *model.Match @@ -165,10 +196,12 @@ func (arena *Arena) generateScorePostedMessage() interface{} { BlueFouls []game.Foul RedCards map[string]string BlueCards map[string]string + SeriesStatus string + SeriesLeader string }{arena.SavedMatch.CapitalizedType(), arena.SavedMatch, arena.SavedMatchResult.RedScoreSummary(), arena.SavedMatchResult.BlueScoreSummary(), populateFoulDescriptions(arena.SavedMatchResult.RedScore.Fouls), populateFoulDescriptions(arena.SavedMatchResult.BlueScore.Fouls), arena.SavedMatchResult.RedCards, - arena.SavedMatchResult.BlueCards} + arena.SavedMatchResult.BlueCards, seriesStatus, seriesLeader} } func (arena *Arena) generateScoringStatusMessage() interface{} { diff --git a/static/css/audience_display.css b/static/css/audience_display.css index 97aa781..b2cf433 100644 --- a/static/css/audience_display.css +++ b/static/css/audience_display.css @@ -362,6 +362,23 @@ html { [data-checked=false] { color: #e00; } +.final-footer { + float: left; + width: 33.3%; +} +#finalSeriesStatus { + text-align: center; + min-height: 1px; +} +#finalSeriesStatus[data-leader="red"] { + color: #f66; +} +#finalSeriesStatus[data-leader="blue"] { + color: #39f; +} +#finalMatchName { + text-align: right; +} #sponsor { position: fixed; width: 1000px; diff --git a/static/js/audience_display.js b/static/js/audience_display.js index 90c9937..81dca6a 100644 --- a/static/js/audience_display.js +++ b/static/js/audience_display.js @@ -145,6 +145,8 @@ var handleScorePosted = function(data) { $("#" + blueSide + "FinalAutoQuest").attr("data-checked", data.BlueScoreSummary.AutoQuest); $("#" + blueSide + "FinalFaceTheBoss").html(data.BlueScoreSummary.FaceTheBoss ? "✔" : "✘"); $("#" + blueSide + "FinalFaceTheBoss").attr("data-checked", data.BlueScoreSummary.FaceTheBoss); + $("#finalSeriesStatus").text(data.SeriesStatus); + $("#finalSeriesStatus").attr("data-leader", data.SeriesLeader); $("#finalMatchName").text(data.MatchType + " " + data.Match.DisplayName); }; diff --git a/templates/audience_display.html b/templates/audience_display.html index 2632cfd..d89f58a 100644 --- a/templates/audience_display.html +++ b/templates/audience_display.html @@ -142,8 +142,9 @@
- {{.EventSettings.Name}} 2018 - + + +