Update final scores screen for 2018.

This commit is contained in:
Patrick Fairbank
2018-05-20 13:37:44 -07:00
parent ea405f71b1
commit dc02087cc4
5 changed files with 48 additions and 37 deletions

View File

@@ -40,12 +40,20 @@ func (score *Score) Summarize(opponentFouls []Foul) *ScoreSummary {
}
// Calculate autonomous score.
summary.AutoRunPoints = 5 * score.AutoRuns
autoRuns := score.AutoRuns
if autoRuns > 3 {
autoRuns = 3
}
summary.AutoRunPoints = 5 * autoRuns
summary.AutoPoints = summary.AutoRunPoints + score.AutoOwnershipPoints
// Calculate teleop score.
summary.OwnershipPoints = score.AutoOwnershipPoints + score.TeleopOwnershipPoints
summary.VaultPoints = 5 * score.VaultCubes
vaultCubes := score.VaultCubes
if vaultCubes > 9 {
vaultCubes = 9
}
summary.VaultPoints = 5 * vaultCubes
climbs := score.Climbs
if climbs > 3 {
climbs = 3
@@ -60,7 +68,7 @@ func (score *Score) Summarize(opponentFouls []Foul) *ScoreSummary {
summary.ParkClimbPoints = 5*parks + 30*climbs
// Calculate bonuses.
if score.AutoRuns == 3 && score.AutoEndSwitchOwnership {
if autoRuns == 3 && score.AutoEndSwitchOwnership {
summary.AutoQuest = true
}
if climbs == 3 {

View File

@@ -34,7 +34,11 @@ func TestScoreSummary(t *testing.T) {
assert.Equal(t, true, blueSummary.AutoQuest)
assert.Equal(t, false, blueSummary.FaceTheBoss)
// Test park/climb limits.
// Test limits on fields with a natural cap.
blueScore.AutoRuns = 5
assert.Equal(t, 15, blueScore.Summarize(redScore.Fouls).AutoRunPoints)
redScore.VaultCubes = 20
assert.Equal(t, 45, redScore.Summarize(blueScore.Fouls).VaultPoints)
redScore.Levitate = false
redScore.Climbs = 3
assert.Equal(t, 90, redScore.Summarize(blueScore.Fouls).ParkClimbPoints)
@@ -52,6 +56,7 @@ func TestScoreSummary(t *testing.T) {
assert.Equal(t, 40, redScore.Summarize(blueScore.Fouls).ParkClimbPoints)
// Test Auto Quest boundary conditions.
assert.Equal(t, true, blueScore.Summarize(redScore.Fouls).AutoQuest)
blueScore.AutoEndSwitchOwnership = false
assert.Equal(t, false, blueScore.Summarize(redScore.Fouls).AutoQuest)
blueScore.AutoEndSwitchOwnership = true

View File

@@ -7,7 +7,6 @@ package led
import (
"fmt"
"log"
"net"
)
@@ -210,7 +209,6 @@ func createBlankPacket(numPixels int) []byte {
}
func (controller *Controller) sendPacket(dmxUniverse int) error {
log.Printf("Sending packet for universe %d\n", dmxUniverse)
// Update non-static packet fields.
controller.packet[111]++
controller.packet[113] = byte(dmxUniverse >> 8)

View File

@@ -53,11 +53,11 @@ var handleMatchTime = function(data) {
// Handles a websocket message to update the match score.
var handleRealtimeScore = function(data) {
$("#redScoreNumber").text(data.RedScoreSummary.Score);
$("#redPressurePoints").text(data.RedScoreSummary.PressurePoints);
$("#redOwnershipPoints").text(data.RedScoreSummary.OwnershipPoints);
$("#redRotors").text(data.RedScore.AutoRotors + data.RedScore.Rotors);
$("#redTakeoffs").text(data.RedScore.Takeoffs);
$("#blueScoreNumber").text(data.BlueScoreSummary.Score);
$("#bluePressurePoints").text(data.BlueScoreSummary.PressurePoints);
$("#blueOwnershipPoints").text(data.BlueScoreSummary.OwnershipPoints);
$("#blueRotors").text(data.BlueScore.AutoRotors + data.BlueScore.Rotors);
$("#blueTakeoffs").text(data.BlueScore.Takeoffs);
};
@@ -68,28 +68,28 @@ var handleSetFinalScore = function(data) {
$("#redFinalTeam1").text(data.Match.Red1);
$("#redFinalTeam2").text(data.Match.Red2);
$("#redFinalTeam3").text(data.Match.Red3);
$("#redFinalAutoMobilityPoints").text(data.RedScore.AutoMobilityPoints);
$("#redFinalPressurePoints").text(data.RedScore.PressurePoints);
$("#redFinalRotorPoints").text(data.RedScore.RotorPoints);
$("#redFinalTakeoffPoints").text(data.RedScore.TakeoffPoints);
$("#redFinalAutoRunPoints").text(data.RedScore.AutoRunPoints);
$("#redFinalOwnershipPoints").text(data.RedScore.OwnershipPoints);
$("#redFinalVaultPoints").text(data.RedScore.VaultPoints);
$("#redFinalParkClimbPoints").text(data.RedScore.ParkClimbPoints);
$("#redFinalFoulPoints").text(data.RedScore.FoulPoints);
$("#redFinalPressureGoalReached").html(data.RedScore.PressureGoalReached ? "✔" : "✘");
$("#redFinalPressureGoalReached").attr("data-checked", data.RedScore.PressureGoalReached);
$("#redFinalRotorGoalReached").html(data.RedScore.RotorGoalReached ? "✔" : "✘");
$("#redFinalRotorGoalReached").attr("data-checked", data.RedScore.RotorGoalReached);
$("#redFinalAutoQuest").html(data.RedScore.AutoQuest ? "✔" : "✘");
$("#redFinalAutoQuest").attr("data-checked", data.RedScore.AutoQuest);
$("#redFinalFaceTheBoss").html(data.RedScore.FaceTheBoss ? "✔" : "✘");
$("#redFinalFaceTheBoss").attr("data-checked", data.RedScore.FaceTheBoss);
$("#blueFinalScore").text(data.BlueScore.Score);
$("#blueFinalTeam1").text(data.Match.Blue1);
$("#blueFinalTeam2").text(data.Match.Blue2);
$("#blueFinalTeam3").text(data.Match.Blue3);
$("#blueFinalAutoMobilityPoints").text(data.BlueScore.AutoMobilityPoints);
$("#blueFinalPressurePoints").text(data.BlueScore.PressurePoints);
$("#blueFinalRotorPoints").text(data.BlueScore.RotorPoints);
$("#blueFinalTakeoffPoints").text(data.BlueScore.TakeoffPoints);
$("#blueFinalAutoRunPoints").text(data.BlueScore.AutoRunPoints);
$("#blueFinalOwnershipPoints").text(data.BlueScore.OwnershipPoints);
$("#blueFinalVaultPoints").text(data.BlueScore.VaultPoints);
$("#blueFinalParkClimbPoints").text(data.BlueScore.ParkClimbPoints);
$("#blueFinalFoulPoints").text(data.BlueScore.FoulPoints);
$("#blueFinalPressureGoalReached").html(data.BlueScore.PressureGoalReached ? "✔" : "✘");
$("#blueFinalPressureGoalReached").attr("data-checked", data.BlueScore.PressureGoalReached);
$("#blueFinalRotorGoalReached").html(data.BlueScore.RotorGoalReached ? "✔" : "✘");
$("#blueFinalRotorGoalReached").attr("data-checked", data.BlueScore.RotorGoalReached);
$("#blueFinalAutoQuest").html(data.BlueScore.AutoQuest ? "✔" : "✘");
$("#blueFinalAutoQuest").attr("data-checked", data.BlueScore.AutoQuest);
$("#blueFinalFaceTheBoss").html(data.BlueScore.FaceTheBoss ? "✔" : "✘");
$("#blueFinalFaceTheBoss").attr("data-checked", data.BlueScore.FaceTheBoss);
$("#finalMatchName").text(data.MatchName + " " + data.Match.DisplayName);
};

View File

@@ -99,27 +99,27 @@
</div>
<div class="final-breakdown" id="redFinalBreakdown">
<span class="valign-cell">
<span id="redFinalAutoMobilityPoints"></span><br />
<span id="redFinalPressurePoints"></span><br />
<span id="redFinalRotorPoints"></span><br />
<span id="redFinalTakeoffPoints"></span><br />
<span id="redFinalAutoRunPoints"></span><br />
<span id="redFinalOwnershipPoints"></span><br />
<span id="redFinalVaultPoints"></span><br />
<span id="redFinalParkClimbPoints"></span><br />
<span id="redFinalFoulPoints"></span><br />
<span id="redFinalPressureGoalReached"></span><br />
<span id="redFinalRotorGoalReached"></span><br />
<span id="redFinalAutoQuest"></span><br />
<span id="redFinalFaceTheBoss"></span><br />
</span>
</div>
<div class="final-breakdown" id="centerFinalBreakdown">
<span class="valign-cell">Auto Mobility<br />Pressure<br />Rotor<br />Ready for Takeoff<br />Foul<br />Pressure Bonus<br />Rotor Bonus</span>
<span class="valign-cell">Auto Run<br />Ownership<br />Vault<br />Endgame<br />Foul<br />Auto Quest<br />Face The Boss</span>
</div>
<div class="final-breakdown" id="blueFinalBreakdown">
<span class="valign-cell">
<span id="blueFinalAutoMobilityPoints"></span><br />
<span id="blueFinalPressurePoints"></span><br />
<span id="blueFinalRotorPoints"></span><br />
<span id="blueFinalTakeoffPoints"></span><br />
<span id="blueFinalAutoRunPoints"></span><br />
<span id="blueFinalOwnershipPoints"></span><br />
<span id="blueFinalVaultPoints"></span><br />
<span id="blueFinalParkClimbPoints"></span><br />
<span id="blueFinalFoulPoints"></span><br />
<span id="blueFinalPressureGoalReached"></span><br />
<span id="blueFinalRotorGoalReached"></span><br />
<span id="blueFinalAutoQuest"></span><br />
<span id="blueFinalFaceTheBoss"></span><br />
</span>
</div>
<div id="finalEventMatchInfo">