TUI visual polish: felt table, status bar, scoreboard delay
- Dark green felt background for game screen - Status bar: dark brown bg with amber text instead of blue - YOUR TURN badge: green bg with white text instead of bright gold - 3s delay before hole-complete scoreboard overlay - Dealer indicator changed from Ⓓ to (D) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dfb3397dcb
commit
72eab2c811
@ -214,17 +214,21 @@ class GameScreen(Screen):
|
||||
total_rounds = data.get("total_rounds", 1)
|
||||
finisher_id = data.get("finisher_id")
|
||||
|
||||
self.app.push_screen(
|
||||
ScoreboardScreen(
|
||||
scores=scores,
|
||||
title=f"Hole {round_num} Complete",
|
||||
is_game_over=False,
|
||||
is_host=self._is_host,
|
||||
round_num=round_num,
|
||||
total_rounds=total_rounds,
|
||||
finisher_id=finisher_id,
|
||||
# Delay so players can see the final card layout before the overlay
|
||||
self.set_timer(
|
||||
3.0,
|
||||
lambda: self.app.push_screen(
|
||||
ScoreboardScreen(
|
||||
scores=scores,
|
||||
title=f"Hole {round_num} Complete",
|
||||
is_game_over=False,
|
||||
is_host=self._is_host,
|
||||
round_num=round_num,
|
||||
total_rounds=total_rounds,
|
||||
finisher_id=finisher_id,
|
||||
),
|
||||
callback=self._on_scoreboard_dismiss,
|
||||
),
|
||||
callback=self._on_scoreboard_dismiss,
|
||||
)
|
||||
|
||||
def _handle_game_over(self, data: dict) -> None:
|
||||
|
||||
@ -245,6 +245,7 @@ LobbyScreen {
|
||||
GameScreen {
|
||||
align: center top;
|
||||
layout: vertical;
|
||||
background: #0a2a1a;
|
||||
}
|
||||
|
||||
#game-content {
|
||||
@ -257,8 +258,8 @@ GameScreen {
|
||||
#status-bar {
|
||||
height: 1;
|
||||
dock: top;
|
||||
background: $primary;
|
||||
color: $text;
|
||||
background: #2a1a0a;
|
||||
color: #f4a460;
|
||||
padding: 0 2;
|
||||
}
|
||||
|
||||
|
||||
@ -101,8 +101,8 @@ def render_player_box(
|
||||
f"[{bc}]│[/] {line}{' ' * right_pad}[{bc}]│[/]"
|
||||
)
|
||||
|
||||
# Bottom border — dealer Ⓓ on left, OUT on right
|
||||
left_label = " Ⓓ " if is_dealer else ""
|
||||
# Bottom border — dealer (D)on left, OUT on right
|
||||
left_label = " (D)" if is_dealer else ""
|
||||
right_label = " OUT " if is_knocker else ""
|
||||
mid_fill = max(1, inner - len(left_label) - len(right_label))
|
||||
parts = f"[{bc}]╰[/]"
|
||||
|
||||
@ -50,7 +50,7 @@ class StatusBarWidget(Static):
|
||||
# Turn info (skip during initial flip - it's misleading)
|
||||
if state.current_player_id and state.players and state.phase != "initial_flip":
|
||||
if state.current_player_id == self._player_id:
|
||||
parts.append("[bold #111111 on #ffd700] YOUR TURN! [/bold #111111 on #ffd700]")
|
||||
parts.append("[bold #ffffff on #2e7d32] YOUR TURN [/bold #ffffff on #2e7d32]")
|
||||
else:
|
||||
for p in state.players:
|
||||
if p.id == state.current_player_id:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user