Show series wins in final score view.

This commit is contained in:
Patrick Fairbank
2018-09-19 01:26:49 -07:00
parent d8c4b92f57
commit 97c79c60e9
4 changed files with 56 additions and 3 deletions

View File

@@ -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{} {

View File

@@ -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;

View File

@@ -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);
};

View File

@@ -142,8 +142,9 @@
</span>
</div>
<div id="finalEventMatchInfo">
<span>{{.EventSettings.Name}} 2018</span>
<span class="pull-right" id="finalMatchName"></span>
<div class="final-footer">{{.EventSettings.Name}} 2018</div>
<div class="final-footer" id="finalSeriesStatus">&nbsp;</div>
<div class="final-footer" id="finalMatchName">&nbsp;</div>
</div>
</div>
<div id="sponsor" class="carousel slide">