diff options
author | Santo Cariotti <santo@dcariotti.me> | 2025-04-24 15:13:51 +0200 |
---|---|---|
committer | Santo Cariotti <santo@dcariotti.me> | 2025-04-24 15:13:51 +0200 |
commit | 2cc4e1815ce1cc152521be52fd45b93215412d1a (patch) | |
tree | 24c9b89b1678f828009e0344e790f7f3cfa4720a | |
parent | 410b71e33e765cabd2813a37bbc8a42ea78ec22a (diff) |
Show who you are on players list
-rw-r--r-- | pkg/ui/views/game.go | 25 |
1 files changed, 22 insertions, 3 deletions
diff --git a/pkg/ui/views/game.go b/pkg/ui/views/game.go index a298de7..943a94e 100644 --- a/pkg/ui/views/game.go +++ b/pkg/ui/views/game.go @@ -25,6 +25,7 @@ type GameModel struct { keys gameKeyMap // Game state + userID int restore bool currentGameID int game *database.Game @@ -100,6 +101,7 @@ func (m GameModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { cmd = m.handleRestoreMoves(msg) cmds = append(cmds, cmd) case database.Game: + m.userID, m.err = getUserID() m, cmd = m.handleDatabaseGameMsg(msg) cmds = append(cmds, cmd, m.updateMovesListCmd()) case EndGameMsg: @@ -243,16 +245,33 @@ func (m GameModel) View() string { } var playersHeader string + players := []string{m.game.Player1.Username, m.game.Player2.Username} + + switch m.userID { + case m.game.Player1.ID: + players[0] += " (YOU)" + case m.game.Player2.ID: + players[1] += " (YOU)" + } + switch m.game.Type { case database.SingleGameType: playersHeader = lipgloss.NewStyle(). Foreground(lipgloss.Color("#f1c40f")). - Render(fmt.Sprintf("♔ %s vs ♚ %s", m.game.Player1.Username, m.game.Player2.Username)) + Render(fmt.Sprintf("♔ %s vs ♚ %s", players[0], players[1])) case database.PairGameType: + players = append(players, m.game.Player3.Username, m.game.Player4.Username) + + switch m.userID { + case m.game.Player3.ID: + players[2] += " (YOU)" + case m.game.Player4.ID: + players[3] += " (YOU)" + } + playersHeader = lipgloss.NewStyle(). Foreground(lipgloss.Color("#f1c40f")). - Render(fmt.Sprintf("♔ %s - %s vs ♚ %s - %s", - m.game.Player1.Username, m.game.Player3.Username, m.game.Player2.Username, m.game.Player4.Username)) + Render(fmt.Sprintf("♔ %s - %s vs ♚ %s - %s", players[0], players[1], players[2], players[3])) } content := lipgloss.JoinVertical( |