Profile bar on phones:
- With the new Statistik/Admin chips the bar overflowed the viewport on
small screens. It now wraps (flex-wrap + max-width) and compacts its
paddings, fonts and chip sizes below 560px
Auto-wave (🔁 button in the HUD controls):
- New persistent toggle (localStorage) that starts the next wave on its
own ~0.4s after intermission begins, collecting the full early-call
bonus without pressing the wave button every round
- Toggling it on during an active intermission starts the wave
immediately; works in solo and multiplayer (uses the same action path
as the manual button); active state shows green
Stats are now saved when leaving via the menu:
- Previously only victory/defeat recorded a result — exiting a running
game via "🚪 Zurück zum Hauptmenü" or the pause menu discarded the
whole run, which is why endless-mode progress beyond wave 20 never
showed up in the stats
- engine.abandon() records best score, stats and crystals (counted as a
defeat) whenever a solo game is left mid-run; no-ops when no game is
running or the result was already reported, so no double counting
Verified in the browser (390x844, admin account): profile bar wraps
compactly; 🔁 auto-started wave 1 during intermission without manual
click; exiting mid-wave recorded the run (💎 2, 1 Runde, beste Welle 1).
Build clean, 54/54 tests green.
The admin dashboard exposed account stats, but players had no way to see
their own. Both gaps are closed:
Player stats modal (src/components/PlayerStats.vue):
- New "📊 Statistik" chip in the profile bar, available to logged-in
players AND guests (guest progress lives in the same profile shape)
- Shows crystals, rounds played, wins incl. win rate, kills, total score,
best wave, and a research progress bar (owned vs. total upgrade levels)
- Guests get a hint that their progress is local-only and transfers into
an account on first login
Admin shortcut:
- Logged-in users whose account is listed in ADMIN_USERS (server already
sets publicUser.admin) now get a "🛡️ Admin" chip in the profile bar
that links to /admin with the existing session
- UserMetaProfile type gains the optional admin flag
Verified in the browser: guest sees the stats button but no admin chip;
after logging in as an ADMIN_USERS account the admin chip appears and
navigates to the dashboard (data loads, 1 account). Build clean, 54/54
tests green.