Support spectating matches

This commit is contained in:
Trevor Slocum 2023-11-16 17:14:42 -08:00
parent c5c807d8d0
commit 64618170e7
5 changed files with 24 additions and 26 deletions

View file

@ -1,4 +1,5 @@
1.1.3:
- Support spectating matches
- Highlight available moves using both dice
1.1.2:

View file

@ -1430,22 +1430,24 @@ func (b *board) processState() {
b.lastPlayerNumber = b.gameState.PlayerNumber
var showGrid *etk.Grid
if b.gameState.MayRoll() {
if b.gameState.MayDouble() {
showGrid = b.buttonsDoubleRollGrid
} else {
showGrid = b.buttonsOnlyRollGrid
if !b.gameState.Spectating {
if b.gameState.MayRoll() {
if b.gameState.MayDouble() {
showGrid = b.buttonsDoubleRollGrid
} else {
showGrid = b.buttonsOnlyRollGrid
}
} else if b.gameState.MayOK() {
if b.gameState.MayResign() {
showGrid = b.buttonsResignAcceptGrid
} else if len(b.gameState.Moves) != 0 {
showGrid = b.buttonsUndoOKGrid
} else {
showGrid = b.buttonsOnlyOKGrid
}
} else if b.gameState.Winner == 0 && b.gameState.Turn != 0 && b.gameState.Turn == b.gameState.PlayerNumber && len(b.gameState.Moves) != 0 {
showGrid = b.buttonsOnlyUndoGrid
}
} else if b.gameState.MayOK() {
if b.gameState.MayResign() {
showGrid = b.buttonsResignAcceptGrid
} else if len(b.gameState.Moves) != 0 {
showGrid = b.buttonsUndoOKGrid
} else {
showGrid = b.buttonsOnlyOKGrid
}
} else if b.gameState.Winner == 0 && b.gameState.Turn != 0 && b.gameState.Turn == b.gameState.PlayerNumber && len(b.gameState.Moves) != 0 {
showGrid = b.buttonsOnlyUndoGrid
}
b.showButtonGrid(showGrid)
@ -1593,14 +1595,9 @@ func (b *board) movePiece(from int, to int) {
}
}
// WatchingGame returns whether the active game is being watched.
func (b *board) watchingGame() bool {
return !b.playingGame() && false // TODO
}
// PlayingGame returns whether the active game is being played.
func (b *board) playingGame() bool {
return b.gameState.Player1.Name != "" || b.gameState.Player2.Name != ""
return (b.gameState.Player1.Name != "" || b.gameState.Player2.Name != "") && !b.gameState.Spectating
}
func (b *board) playerTurn() bool {

View file

@ -36,7 +36,7 @@ import (
"golang.org/x/text/language"
)
const version = "v1.1.2p2"
const version = "v1.1.2p3"
const MaxDebug = 2
@ -952,7 +952,7 @@ func (g *Game) handleEvents() {
g.Client.Out <- []byte(fmt.Sprintf("pong %s", ev.Message))
default:
l("*** " + gotext.Get("Warning: Received unknown event: %+v", ev))
l("*** " + gotext.Get("You may need to upgrade your client.", ev))
l("*** " + gotext.Get("You may need to upgrade your client."))
}
}
}

2
go.mod
View file

@ -3,7 +3,7 @@ module code.rocket9labs.com/tslocum/boxcars
go 1.17
require (
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231115225155-2493c76bdfd4
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231117011217-28ba643bf994
code.rocket9labs.com/tslocum/etk v0.0.0-20231111061733-ffdef73ac8fb
code.rocketnine.space/tslocum/kibodo v1.0.2
code.rocketnine.space/tslocum/messeji v1.0.6-0.20231108225635-7a691903039e

4
go.sum
View file

@ -1,5 +1,5 @@
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231115225155-2493c76bdfd4 h1:UG7sA9veENnBqi56fgIjLzMbVJg4EOm+3iJfU3xcCGI=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231115225155-2493c76bdfd4/go.mod h1:NIwLSiHvXFJPJ6loPWJWb3esPaZT8Qk27hO6Tzassb4=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231117011217-28ba643bf994 h1:4KGAaJ8AupuEf5oyIT05NOhIYH1VOtuLgIX71E1MWAI=
code.rocket9labs.com/tslocum/bgammon v0.0.0-20231117011217-28ba643bf994/go.mod h1:NIwLSiHvXFJPJ6loPWJWb3esPaZT8Qk27hO6Tzassb4=
code.rocket9labs.com/tslocum/etk v0.0.0-20231111061733-ffdef73ac8fb h1:CJgcS7SZi9ICZNCs1Hz6+YpajvCHmzyqY38xl+2z8h8=
code.rocket9labs.com/tslocum/etk v0.0.0-20231111061733-ffdef73ac8fb/go.mod h1:mwrZqZLdxJhtbWKcuX3Ym06fFr1yqWH8FMXG5wHJ/KU=
code.rocketnine.space/tslocum/kibodo v1.0.2 h1:0RfvVz+IUku8MFx9wvDb+p8byns5gAjQLUo4ZenWP44=