Made foul addition and deletion trigger realtime score update.

This commit is contained in:
Patrick Fairbank
2014-08-03 21:19:24 -07:00
parent 4892247a1e
commit 251c437f83
2 changed files with 16 additions and 8 deletions

View File

@@ -432,8 +432,8 @@ func (arena *Arena) sendDsPacket(auto bool, enabled bool) {
arena.lastDsPacketTime = time.Now()
}
func (realtimeScore *RealtimeScore) Score() int {
score := scoreSummary(&realtimeScore.CurrentScore, []Foul{}).Score
func (realtimeScore *RealtimeScore) Score(opponentFouls []Foul) int {
score := scoreSummary(&realtimeScore.CurrentScore, opponentFouls).Score
if realtimeScore.CurrentCycle.Truss {
score += 10
if realtimeScore.CurrentCycle.Catch {

View File

@@ -92,8 +92,10 @@ func AudienceDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
RedCycle Cycle
BlueScore int
BlueCycle Cycle
}{mainArena.redRealtimeScore.Score(), mainArena.redRealtimeScore.CurrentCycle,
mainArena.blueRealtimeScore.Score(), mainArena.blueRealtimeScore.CurrentCycle}
}{mainArena.redRealtimeScore.Score(mainArena.blueRealtimeScore.Fouls),
mainArena.redRealtimeScore.CurrentCycle,
mainArena.blueRealtimeScore.Score(mainArena.redRealtimeScore.Fouls),
mainArena.blueRealtimeScore.CurrentCycle}
err = websocket.Write("realtimeScore", data)
if err != nil {
log.Printf("Websocket error: %s", err)
@@ -149,8 +151,10 @@ func AudienceDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
RedCycle Cycle
BlueScore int
BlueCycle Cycle
}{mainArena.redRealtimeScore.Score(), mainArena.redRealtimeScore.CurrentCycle,
mainArena.blueRealtimeScore.Score(), mainArena.blueRealtimeScore.CurrentCycle}
}{mainArena.redRealtimeScore.Score(mainArena.blueRealtimeScore.Fouls),
mainArena.redRealtimeScore.CurrentCycle,
mainArena.blueRealtimeScore.Score(mainArena.redRealtimeScore.Fouls),
mainArena.blueRealtimeScore.CurrentCycle}
case _, ok := <-scorePostedListener:
if !ok {
return
@@ -280,7 +284,8 @@ func AnnouncerDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
data = struct {
RedScore int
BlueScore int
}{mainArena.redRealtimeScore.Score(), mainArena.blueRealtimeScore.Score()}
}{mainArena.redRealtimeScore.Score(mainArena.blueRealtimeScore.Fouls),
mainArena.blueRealtimeScore.Score(mainArena.redRealtimeScore.Fouls)}
err = websocket.Write("realtimeScore", data)
if err != nil {
log.Printf("Websocket error: %s", err)
@@ -325,7 +330,8 @@ func AnnouncerDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
message = struct {
RedScore int
BlueScore int
}{mainArena.redRealtimeScore.Score(), mainArena.blueRealtimeScore.Score()}
}{mainArena.redRealtimeScore.Score(mainArena.blueRealtimeScore.Fouls),
mainArena.blueRealtimeScore.Score(mainArena.redRealtimeScore.Fouls)}
case _, ok := <-scorePostedListener:
if !ok {
return
@@ -708,6 +714,7 @@ func RefereeDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
} else {
mainArena.blueRealtimeScore.Fouls = append(mainArena.blueRealtimeScore.Fouls, foul)
}
mainArena.realtimeScoreNotifier.Notify(nil)
case "deleteFoul":
args := struct {
Alliance string
@@ -737,6 +744,7 @@ func RefereeDisplayWebsocketHandler(w http.ResponseWriter, r *http.Request) {
break
}
}
mainArena.realtimeScoreNotifier.Notify(nil)
case "commitMatch":
mainArena.redRealtimeScore.FoulsCommitted = true
mainArena.blueRealtimeScore.FoulsCommitted = true