Support creating acey-deucey matches
This commit is contained in:
parent
059f536d70
commit
32d290c504
3 changed files with 43 additions and 5 deletions
|
@ -1,3 +1,6 @@
|
|||
1.1.5:
|
||||
- Support playing acey-deucey games
|
||||
|
||||
1.1.4:
|
||||
- Display player "off" spaces
|
||||
- Allow bearing off by moving checkers to the "off" spaces
|
||||
|
|
24
game/game.go
24
game/game.go
|
@ -697,6 +697,7 @@ func NewGame() *Game {
|
|||
nameLabel := etk.NewText(gotext.Get("Name"))
|
||||
pointsLabel := etk.NewText(gotext.Get("Points"))
|
||||
passwordLabel := etk.NewText(gotext.Get("Password"))
|
||||
variantLabel := etk.NewText(gotext.Get("Variant"))
|
||||
|
||||
g.lobby.createGameName = etk.NewInput("", "", func(text string) (handled bool) {
|
||||
return false
|
||||
|
@ -713,6 +714,27 @@ func NewGame() *Game {
|
|||
})
|
||||
centerInput(g.lobby.createGamePassword)
|
||||
|
||||
g.lobby.createGameCheckbox = etk.NewCheckbox(g.lobby.toggleAceyDeucey)
|
||||
g.lobby.createGameCheckbox.SetBorderColor(triangleA)
|
||||
g.lobby.createGameCheckbox.SetCheckColor(triangleA)
|
||||
g.lobby.createGameCheckbox.SetSelected(false)
|
||||
|
||||
textField := etk.NewText(gotext.Get("Acey-deucey"))
|
||||
aceyDeuceyLabel := &ClickableText{
|
||||
Text: textField,
|
||||
onSelected: func() {
|
||||
g.lobby.createGameCheckbox.SetSelected(!g.lobby.createGameCheckbox.Selected())
|
||||
g.lobby.toggleAceyDeucey()
|
||||
},
|
||||
}
|
||||
aceyDeuceyLabel.SetVertical(messeji.AlignCenter)
|
||||
|
||||
aceyDeuceyGrid := etk.NewGrid()
|
||||
aceyDeuceyGrid.SetColumnSizes(50, -1)
|
||||
aceyDeuceyGrid.SetRowSizes(50, -1)
|
||||
aceyDeuceyGrid.AddChildAt(g.lobby.createGameCheckbox, 0, 0, 1, 1)
|
||||
aceyDeuceyGrid.AddChildAt(aceyDeuceyLabel, 1, 0, 1, 1)
|
||||
|
||||
grid := etk.NewGrid()
|
||||
grid.SetColumnPadding(int(g.Board.horizontalBorderSize / 2))
|
||||
grid.SetRowPadding(20)
|
||||
|
@ -726,6 +748,8 @@ func NewGame() *Game {
|
|||
grid.AddChildAt(g.lobby.createGamePoints, 2, 2, 1, 1)
|
||||
grid.AddChildAt(passwordLabel, 1, 3, 1, 1)
|
||||
grid.AddChildAt(g.lobby.createGamePassword, 2, 3, 1, 1)
|
||||
grid.AddChildAt(variantLabel, 1, 4, 1, 1)
|
||||
grid.AddChildAt(aceyDeuceyGrid, 2, 4, 1, 1)
|
||||
createGameGrid = grid
|
||||
|
||||
createGameContainer = etk.NewGrid()
|
||||
|
|
|
@ -68,10 +68,12 @@ type lobby struct {
|
|||
|
||||
refresh bool
|
||||
|
||||
showCreateGame bool
|
||||
createGameName *etk.Input
|
||||
createGamePoints *etk.Input
|
||||
createGamePassword *etk.Input
|
||||
showCreateGame bool
|
||||
createGameName *etk.Input
|
||||
createGamePoints *etk.Input
|
||||
createGamePassword *etk.Input
|
||||
createGameCheckbox *etk.Checkbox
|
||||
createGameAceyDeucey bool
|
||||
|
||||
showJoinGame bool
|
||||
joinGameID int
|
||||
|
@ -137,6 +139,11 @@ func (l *lobby) toggleKeyboard() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (l *lobby) toggleAceyDeucey() error {
|
||||
l.createGameAceyDeucey = !l.createGameAceyDeucey
|
||||
return nil
|
||||
}
|
||||
|
||||
func (l *lobby) handleRefreshTimer() {
|
||||
t := time.NewTicker(time.Second)
|
||||
for range t.C {
|
||||
|
@ -184,7 +191,11 @@ func (l *lobby) confirmCreateGame() {
|
|||
if err != nil {
|
||||
points = 1
|
||||
}
|
||||
l.c.Out <- []byte(fmt.Sprintf("c %s %d %s", typeAndPassword, points, game.lobby.createGameName.Text()))
|
||||
acey := 0
|
||||
if game.lobby.createGameAceyDeucey {
|
||||
acey = 1
|
||||
}
|
||||
l.c.Out <- []byte(fmt.Sprintf("c %s %d %d %s", typeAndPassword, points, acey, game.lobby.createGameName.Text()))
|
||||
}
|
||||
|
||||
func (l *lobby) confirmJoinGame() {
|
||||
|
|
Loading…
Reference in a new issue