Only show tutorial to guests without a previously saved username
Resolves #23.
This commit is contained in:
parent
87c6b3167c
commit
68f367ceb1
6 changed files with 32 additions and 32 deletions
|
@ -1,3 +1,6 @@
|
|||
1.2.8:
|
||||
- Fix interface scaling on Android
|
||||
|
||||
1.2.7:
|
||||
- Draw checkers in home spaces sideways
|
||||
- Use device on-screen keyboard on Android
|
||||
|
|
|
@ -10,7 +10,7 @@ Visit https://play.bgammon.org
|
|||
|
||||
### Desktop
|
||||
|
||||
Download Boxcars at https://bgammon.org/download
|
||||
Download Boxcars at https://bgammon.org/boxcars
|
||||
|
||||
### Android
|
||||
|
||||
|
|
24
game/game.go
24
game/game.go
|
@ -39,7 +39,7 @@ import (
|
|||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
const version = "v1.2.7"
|
||||
const version = "v1.2.8"
|
||||
|
||||
const DefaultServerAddress = "wss://ws.bgammon.org"
|
||||
|
||||
|
@ -591,6 +591,8 @@ type Game struct {
|
|||
|
||||
LoadReplay []byte
|
||||
|
||||
savedUsername string
|
||||
|
||||
initialized bool
|
||||
loaded bool
|
||||
|
||||
|
@ -624,6 +626,8 @@ func NewGame() *Game {
|
|||
debugImg: ebiten.NewImage(200, 200),
|
||||
volume: 1,
|
||||
|
||||
savedUsername: loadUsername(),
|
||||
|
||||
Mutex: &sync.Mutex{},
|
||||
}
|
||||
g.tutorialFrame.SetPositionChildren(true)
|
||||
|
@ -681,7 +685,7 @@ func (g *Game) initialize() {
|
|||
|
||||
fieldHeight = etk.Scale(50)
|
||||
if AutoEnableTouchInput {
|
||||
fieldHeight /= 2
|
||||
fieldHeight = etk.Scale(32)
|
||||
}
|
||||
|
||||
g.Board = NewBoard()
|
||||
|
@ -691,6 +695,8 @@ func (g *Game) initialize() {
|
|||
yPadding := etk.Scale(20)
|
||||
labelWidth := etk.Scale(200)
|
||||
if AutoEnableTouchInput {
|
||||
xPadding = 0
|
||||
yPadding /= 2
|
||||
labelWidth /= 2
|
||||
}
|
||||
|
||||
|
@ -765,7 +771,7 @@ func (g *Game) initialize() {
|
|||
}
|
||||
{
|
||||
subGrid := etk.NewGrid()
|
||||
subGrid.SetColumnSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetColumnSizes(-1, yPadding, -1)
|
||||
subGrid.AddChildAt(cancelButton, 0, 0, 1, 1)
|
||||
subGrid.AddChildAt(submitButton, 2, 0, 1, 1)
|
||||
grid.AddChildAt(subGrid, 1, y, 3, 1)
|
||||
|
@ -819,7 +825,7 @@ func (g *Game) initialize() {
|
|||
}
|
||||
{
|
||||
subGrid := etk.NewGrid()
|
||||
subGrid.SetColumnSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetColumnSizes(-1, yPadding, -1)
|
||||
subGrid.AddChildAt(cancelButton, 0, 0, 1, 1)
|
||||
subGrid.AddChildAt(submitButton, 2, 0, 1, 1)
|
||||
grid.AddChildAt(subGrid, 1, y, 3, 1)
|
||||
|
@ -890,16 +896,16 @@ func (g *Game) initialize() {
|
|||
}
|
||||
{
|
||||
subGrid := etk.NewGrid()
|
||||
subGrid.SetColumnSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetRowSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetColumnSizes(-1, yPadding, -1)
|
||||
subGrid.SetRowSizes(-1, yPadding, -1)
|
||||
subGrid.AddChildAt(connectButton, 0, 0, 1, 1)
|
||||
subGrid.AddChildAt(registerButton, 2, 0, 1, 1)
|
||||
grid.AddChildAt(subGrid, 1, g.connectGridY, 3, 1)
|
||||
}
|
||||
{
|
||||
subGrid := etk.NewGrid()
|
||||
subGrid.SetColumnSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetRowSizes(-1, xPadding*2, -1)
|
||||
subGrid.SetColumnSizes(-1, yPadding, -1)
|
||||
subGrid.SetRowSizes(-1, yPadding, -1)
|
||||
subGrid.AddChildAt(resetButton, 0, 0, 1, 1)
|
||||
subGrid.AddChildAt(offlineButton, 2, 0, 1, 1)
|
||||
grid.AddChildAt(subGrid, 1, g.connectGridY+1, 3, 1)
|
||||
|
@ -1374,7 +1380,7 @@ func (g *Game) handleEvent(e interface{}) {
|
|||
}
|
||||
l(fmt.Sprintf("*** Welcome, %s. There %s %d client%s playing %d match%s.", ev.PlayerName, areIs, ev.Clients, clientsPlural, ev.Games, matchesPlural))
|
||||
|
||||
if strings.HasPrefix(g.Client.Username, "Guest_") {
|
||||
if strings.HasPrefix(g.Client.Username, "Guest_") && g.savedUsername == "" {
|
||||
g.tutorialFrame.AddChild(NewTutorialWidget())
|
||||
}
|
||||
case *bgammon.EventHelp:
|
||||
|
|
|
@ -57,11 +57,12 @@ func focused() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func userConfigDir() string {
|
||||
return "/data/data/com.rocket9labs.boxcars"
|
||||
}
|
||||
|
||||
func loadUsername() string {
|
||||
configDir := userConfigDir()
|
||||
if configDir == "" {
|
||||
return ""
|
||||
}
|
||||
buf, err := os.ReadFile(path.Join(configDir, "config"))
|
||||
if err != nil {
|
||||
return ""
|
||||
|
@ -71,21 +72,10 @@ func loadUsername() string {
|
|||
|
||||
func saveUsername(username string) {
|
||||
configDir := userConfigDir()
|
||||
if configDir == "" {
|
||||
return
|
||||
}
|
||||
_ = os.MkdirAll(filepath.Dir(configDir), 0700)
|
||||
_ = os.WriteFile(path.Join(configDir, "config"), []byte(username), 0600)
|
||||
}
|
||||
|
||||
func userConfigDir() string {
|
||||
configDir, err := os.UserConfigDir()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return path.Join(configDir, "boxcars")
|
||||
}
|
||||
|
||||
func saveReplay(id int, content []byte) error {
|
||||
if id <= 0 {
|
||||
return nil
|
||||
|
|
|
@ -28,6 +28,14 @@ func focused() bool {
|
|||
return true
|
||||
}
|
||||
|
||||
func userConfigDir() string {
|
||||
configDir, err := os.UserConfigDir()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return path.Join(configDir, "boxcars")
|
||||
}
|
||||
|
||||
func loadUsername() string {
|
||||
configDir := userConfigDir()
|
||||
if configDir == "" {
|
||||
|
@ -49,14 +57,6 @@ func saveUsername(username string) {
|
|||
_ = os.WriteFile(path.Join(configDir, "config"), []byte(username), 0600)
|
||||
}
|
||||
|
||||
func userConfigDir() string {
|
||||
configDir, err := os.UserConfigDir()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return path.Join(configDir, "boxcars")
|
||||
}
|
||||
|
||||
func saveReplay(id int, content []byte) error {
|
||||
replayDir := ReplayDir()
|
||||
if replayDir == "" {
|
||||
|
|
|
@ -35,6 +35,7 @@ func (w *tutorialWidget) hide() {
|
|||
game.setRoot(listGamesFrame)
|
||||
setViewBoard(false)
|
||||
game.Board.gameState.PlayerNumber = 0
|
||||
game.savedUsername = "a"
|
||||
w.grid.Clear()
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue