Only show tutorial to guests without a previously saved username

Resolves #23.
This commit is contained in:
Trevor Slocum 2024-01-29 10:49:21 -08:00
parent 87c6b3167c
commit 68f367ceb1
6 changed files with 32 additions and 32 deletions

View file

@ -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

View file

@ -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

View file

@ -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:

View file

@ -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

View file

@ -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 == "" {

View file

@ -35,6 +35,7 @@ func (w *tutorialWidget) hide() {
game.setRoot(listGamesFrame)
setViewBoard(false)
game.Board.gameState.PlayerNumber = 0
game.savedUsername = "a"
w.grid.Clear()
}