mirror of
https://github.com/Team254/cheesy-arena-lite.git
synced 2026-03-09 13:46:44 -04:00
Show ranking changes on audience and announcer displays.
This commit is contained in:
@@ -57,11 +57,20 @@ var handleScorePosted = function(data) {
|
||||
Object.assign(foul, data.RulesViolated[foul.RuleId]);
|
||||
});
|
||||
|
||||
var redRankings = {};
|
||||
redRankings[data.Match.Red1] = getRankingText(data.Match.Red1, data.Rankings);
|
||||
redRankings[data.Match.Red2] = getRankingText(data.Match.Red2, data.Rankings);
|
||||
redRankings[data.Match.Red3] = getRankingText(data.Match.Red3, data.Rankings);
|
||||
var blueRankings = {};
|
||||
blueRankings[data.Match.Blue1] = getRankingText(data.Match.Blue1, data.Rankings);
|
||||
blueRankings[data.Match.Blue2] = getRankingText(data.Match.Blue2, data.Rankings);
|
||||
blueRankings[data.Match.Blue3] = getRankingText(data.Match.Blue3, data.Rankings);
|
||||
|
||||
$("#scoreMatchName").text(data.MatchType + " Match " + data.Match.DisplayName);
|
||||
$("#redScoreDetails").html(matchResultTemplate({score: data.RedScoreSummary, fouls: data.RedFouls,
|
||||
rulesViolated: data.RulesViolated, cards: data.RedCards}));
|
||||
rulesViolated: data.RulesViolated, cards: data.RedCards, rankings: redRankings}));
|
||||
$("#blueScoreDetails").html(matchResultTemplate({score: data.BlueScoreSummary, fouls: data.BlueFouls,
|
||||
rulesViolated: data.RulesViolated, cards: data.BlueCards}));
|
||||
rulesViolated: data.RulesViolated, cards: data.BlueCards, rankings: blueRankings}));
|
||||
$("#matchResult").modal("show");
|
||||
|
||||
// Activate tooltips above the foul listings.
|
||||
@@ -76,6 +85,25 @@ var formatTeam = function(team) {
|
||||
return team;
|
||||
};
|
||||
|
||||
// Returns the string to be displayed to indicate change in rank.
|
||||
var getRankingText = function(teamId, rankings) {
|
||||
var ranking = rankings[teamId];
|
||||
if (ranking === null || ranking.Rank === 0) {
|
||||
return "";
|
||||
}
|
||||
var arrow = "";
|
||||
if (ranking.Rank > ranking.PreviousRank && ranking.PreviousRank > 0) {
|
||||
arrow = "⬇";
|
||||
} else if (ranking.Rank < ranking.PreviousRank) {
|
||||
arrow = "⬆";
|
||||
}
|
||||
var previousRank = "";
|
||||
if (ranking.PreviousRank > 0) {
|
||||
previousRank = " (was " + ranking.PreviousRank + ")";
|
||||
}
|
||||
return ranking.Rank + arrow + previousRank;
|
||||
};
|
||||
|
||||
$(function() {
|
||||
// Set up the websocket back to the server.
|
||||
websocket = new CheesyWebsocket("/displays/announcer/websocket", {
|
||||
|
||||
@@ -96,9 +96,9 @@ var handleRealtimeScore = function(data) {
|
||||
// Handles a websocket message to populate the final score data.
|
||||
var handleScorePosted = function(data) {
|
||||
$("#" + redSide + "FinalScore").text(data.RedScoreSummary.Score);
|
||||
$("#" + redSide + "FinalTeam1").text(data.Match.Red1);
|
||||
$("#" + redSide + "FinalTeam2").text(data.Match.Red2);
|
||||
$("#" + redSide + "FinalTeam3").text(data.Match.Red3);
|
||||
$("#" + redSide + "FinalTeam1").html(data.Match.Red1 + "" + getRankingText(data.Match.Red1, data.Rankings));
|
||||
$("#" + redSide + "FinalTeam2").html(data.Match.Red2 + "" + getRankingText(data.Match.Red2, data.Rankings));
|
||||
$("#" + redSide + "FinalTeam3").html(data.Match.Red3 + "" + getRankingText(data.Match.Red3, data.Rankings));
|
||||
$("#" + redSide + "FinalTeam1Avatar").attr("src", getAvatarUrl(data.Match.Red1));
|
||||
$("#" + redSide + "FinalTeam2Avatar").attr("src", getAvatarUrl(data.Match.Red2));
|
||||
$("#" + redSide + "FinalTeam3Avatar").attr("src", getAvatarUrl(data.Match.Red3));
|
||||
@@ -112,9 +112,9 @@ var handleScorePosted = function(data) {
|
||||
$("#" + redSide + "FinalEndgameRankingPoint").html(data.RedScoreSummary.EndgameRankingPoint ? "✔" : "✘");
|
||||
$("#" + redSide + "FinalEndgameRankingPoint").attr("data-checked", data.RedScoreSummary.EndgameRankingPoint);
|
||||
$("#" + blueSide + "FinalScore").text(data.BlueScoreSummary.Score);
|
||||
$("#" + blueSide + "FinalTeam1").text(data.Match.Blue1);
|
||||
$("#" + blueSide + "FinalTeam2").text(data.Match.Blue2);
|
||||
$("#" + blueSide + "FinalTeam3").text(data.Match.Blue3);
|
||||
$("#" + blueSide + "FinalTeam1").html(data.Match.Blue1 + "" + getRankingText(data.Match.Blue1, data.Rankings));
|
||||
$("#" + blueSide + "FinalTeam2").html(data.Match.Blue2 + "" + getRankingText(data.Match.Blue2, data.Rankings));
|
||||
$("#" + blueSide + "FinalTeam3").html(data.Match.Blue3 + "" + getRankingText(data.Match.Blue3, data.Rankings));
|
||||
$("#" + blueSide + "FinalTeam1Avatar").attr("src", getAvatarUrl(data.Match.Blue1));
|
||||
$("#" + blueSide + "FinalTeam2Avatar").attr("src", getAvatarUrl(data.Match.Blue2));
|
||||
$("#" + blueSide + "FinalTeam3Avatar").attr("src", getAvatarUrl(data.Match.Blue3));
|
||||
@@ -486,6 +486,21 @@ var setPowerCellText = function(element, scoreSummary, stage) {
|
||||
element.css("opacity", opacity);
|
||||
};
|
||||
|
||||
// Returns the string to be displayed next to the team number on the final score screen, to indicate change in rank.
|
||||
var getRankingText = function(teamId, rankings) {
|
||||
var ranking = rankings[teamId];
|
||||
if (ranking === null || ranking.Rank === 0) {
|
||||
return "";
|
||||
}
|
||||
var arrow = "";
|
||||
if (ranking.Rank > ranking.PreviousRank && ranking.PreviousRank > 0) {
|
||||
arrow = "⬇";
|
||||
} else if (ranking.Rank < ranking.PreviousRank) {
|
||||
arrow = "⬆";
|
||||
}
|
||||
return "<sup>" + ranking.Rank + arrow + "</sup>";
|
||||
};
|
||||
|
||||
$(function() {
|
||||
// Read the configuration for this display from the URL query string.
|
||||
var urlParams = new URLSearchParams(window.location.search);
|
||||
|
||||
Reference in New Issue
Block a user