Remove layer of keypress decoding in scoring display JS.

This commit is contained in:
Patrick Fairbank
2018-08-25 19:41:00 -07:00
parent e9acaf4e99
commit b49a86bdca
4 changed files with 41 additions and 40 deletions

View File

@@ -145,35 +145,47 @@ func (web *Web) scoringDisplayWebsocketHandler(w http.ResponseWriter, r *http.Re
}
switch messageType {
case "autoRun":
case "r":
if !autoCommitted {
if (*score).CurrentScore.AutoRuns < 3 {
(*score).CurrentScore.AutoRuns++
}
}
case "undoAutoRun":
case "R":
if !autoCommitted {
if (*score).CurrentScore.AutoRuns > 0 {
(*score).CurrentScore.AutoRuns--
}
}
case "climb":
case "c":
if autoCommitted {
if (*score).CurrentScore.Climbs < 3 {
if (*score).CurrentScore.Climbs+(*score).CurrentScore.Parks < 3 {
(*score).CurrentScore.Climbs++
}
}
case "undoClimb":
case "C":
if autoCommitted {
if (*score).CurrentScore.Climbs > 0 {
(*score).CurrentScore.Climbs--
}
}
case "commit":
case "p":
if autoCommitted {
if (*score).CurrentScore.Climbs+(*score).CurrentScore.Parks < 3 {
(*score).CurrentScore.Parks++
}
}
case "P":
if autoCommitted {
if (*score).CurrentScore.Parks > 0 {
(*score).CurrentScore.Parks--
}
}
case "\r":
if web.arena.MatchState != field.PreMatch || web.arena.CurrentMatch.Type == "test" {
autoCommitted = true
}
case "uncommitAuto":
case "a":
autoCommitted = false
case "commitMatch":
if web.arena.MatchState != field.PostMatch {

View File

@@ -47,16 +47,16 @@ func TestScoringDisplayWebsocket(t *testing.T) {
readWebsocketType(t, blueWs, "matchTime")
// Send a match worth of scoring commands in.
redWs.Write("autoRun", nil)
blueWs.Write("autoRun", nil)
blueWs.Write("autoRun", nil)
blueWs.Write("autoRun", nil)
blueWs.Write("autoRun", nil)
blueWs.Write("undoAutoRun", nil)
redWs.Write("commit", nil)
blueWs.Write("commit", nil)
redWs.Write("uncommitAuto", nil)
redWs.Write("commit", nil)
redWs.Write("r", nil)
blueWs.Write("r", nil)
blueWs.Write("r", nil)
blueWs.Write("r", nil)
blueWs.Write("r", nil)
blueWs.Write("R", nil)
redWs.Write("\r", nil)
blueWs.Write("\r", nil)
redWs.Write("a", nil)
redWs.Write("\r", nil)
for i := 0; i < 4; i++ {
readWebsocketType(t, redWs, "score")
}
@@ -67,7 +67,7 @@ func TestScoringDisplayWebsocket(t *testing.T) {
assert.Equal(t, 1, web.arena.RedRealtimeScore.CurrentScore.AutoRuns)
assert.Equal(t, 2, web.arena.BlueRealtimeScore.CurrentScore.AutoRuns)
redWs.Write("autoRun", nil)
redWs.Write("r", nil)
for i := 0; i < 1; i++ {
readWebsocketType(t, redWs, "score")
}