6.4 KiB
6.4 KiB
Changelog – helldivers-trainer
[2.1.3] – 2026-03-31
Fixed
- Schwarzes Blob hinter Stratagem-Icon:
::beforePseudoelement ohneposition: relativeam Parent positionierte sich falsch und wurde als schwarzer Kreis gerendert — entfernt - Tabellen-Spaltenumbrüche:
stratagem-icon-smwieder auf 22px (von 26px) damit Stratagemnamen in der History-Tabelle nicht umbrechen
[2.1.2] – 2026-03-31
Changed
- Stratagem main icon: Größer (86→110px, mobil 70→88px), hellerer Gold-Filter mit
drop-shadowGlow, leuchtender Kreis-Hintergrund für besseren Kontrast - Queue preview: Icons größer (36→44px), Labels wrappen jetzt über 2 Zeilen statt abzuschneiden, Breite von 60→72px pro Item, Abstufung der Opazität (75%/55%/40% statt 70%/45%)
- Dashboard/Tabellen-Icons (
-mdund-sm): Größer (40→52px / 22→26px), stärkerer Gold-Filter, höhere Opazität (0.85→1 / 0.7→0.9) für bessere Erkennbarkeit
[2.1.1] – 2026-03-31
Fixed
- Speedrun scores never saved: Individual scores were blocked by
if (mode !== 'speedrun')guard; now saved per-stratagem like other modes. Final bulk-save with invalid__speedrun__stratagem name removed (was causing 400 errors). - Dashboard recent-sessions icons missing:
r.iconwas alwaysundefinedsince the server doesn't store icon paths in the DB. Now looks up icon fromstate.stratagemsby name. - Variable shadowing in
renderDashboard: Outerconst r = eloRankFor(...)was shadowed byrecent.map(r => ...). Renamed outer tomyRank. - N+1 DB queries in
broadcastLobbyUpdate: Was running oneSELECT eloper online user. Now batches into a singleWHERE username IN (...)query. - N+1 DB queries in dashboard endpoint: Same pattern fixed for the
/api/dashboardonline-users list. - Unnecessary
typeofguards:typeof u === 'object'checks in lobby/dashboard removed —lobby-updatealways sends objects, never plain strings. - Duplicate
else if (mode === 'endless')branch innextStratagem: Was identical to theelsebranch below it; merged.
[2.1.0] – 2026-03-31
Added
- Stratagem icons: 65 SVG icons downloaded from community icon set, served as static files under
/icons/; icon download script atscripts/download-icons.js - Gold CSS filter on all stratagem icons to match the game's yellow accent theme
- Session summary modal: opens after stopping practice or finishing a drill/speedrun — shows score, completed count, accuracy, best time, and top 5 stratagems
- Queue preview strip: shows next 3 upcoming stratagems (with icons) below the active stratagem
- Score popup animation: floating
+N ptstext appears on every correct completion - Shake animation on wrong input: stratagem icon shakes on incorrect arrow key
- Icon complete pulse: stratagem icon scales + brightens when sequence is completed correctly
- ELO rank icon in post-match result header (matches rank tier badge)
- Inline icons in history table rows, best-per-stratagem table, and leaderboard
scripts/download-icons.js— automated icon fetcher from GitHub community SVG repo
Changed
index.htmlfully rewritten: new elements for icon display, queue, score popup, session summary modalapp.jsfully rewritten (~1100 lines): icon helpers, queue builder, popup system, session stats, improved match/lobby flowsserver.jsSTRATAGEMS array: all 65 entries now haveiconfield (ornullfor missing ones)broadcastLobbyUpdate()now sends[{name, elo, rank}]objects with CSS-safe rank labelschallenge-receivedWS event now includes challenger ELO for display in challenge modal
[2.0.0] – 2026-03-30
Added
- 4 Practice modes: Timed (configurable 15/30/45s, SVG ring timer), Endless (3 lives), Category Drill (progress bar), Speed Run (all stratagems, total time)
- Settings modal: timer duration and difficulty (Easy/Normal/Hard) persisted in localStorage
- History view: paginated session table with mode/category filters, SVG polyline score chart, best-time-per-stratagem table
- ELO rating system: server-side ELO (K=32) calculated after every match; rank tiers PRIVATE → GENERAL
- Post-match result modal: ELO delta display (
before → after +N), round-by-round history - Challenge modal: incoming challenge shows challenger name and ELO; replaces toast notification
- Dashboard hero card: ELO rank badge, rank icon, daily sequence preview arrows, mode column in recent sessions
- Leaderboard tabs: Practice Score / ELO Rating / Speed Run with correct column headers per tab
- Mobile hamburger nav: slide-in drawer with overlay backdrop, Esc key closes modals
- DB migration:
elocolumn on users,modecolumn on practice_sessions,stratagem_statstable - Lobby redesign: ELO + rank shown per player, 2-column layout (Online + Incoming Challenges)
- View fade transitions on every view switch
- Danger vignette flash at ≤5s timer remaining
- Streak fire glow effect (streak ≥ 5), combo multiplier badge (×N, streak ≥ 2)
- Keyboard shortcuts:
Escstops practice / closes modals,Enterstarts practice aria-labelon all D-pad buttons, modals withrole="dialog"andaria-modal="true"
Changed
- Full CSS redesign (~700 → ~1200 lines): glassmorphism cards, new design tokens, SVG timer ring, skeleton shimmer, animated modals
- Dashboard online list now shows ELO; lobby shows ELO + rank per player
- WS
lobby-updatenow sends[{name, elo, rank}]objects instead of plain usernames - WS
challenge-receivednow includes challenger ELO - Practice leaderboard query joined with
users.elofor rank badge display
[1.0.0] – 2026-03-30
Added
- Initial release
- Session-based auth with admin and user roles (mustChange password flow)
- Admin panel: create/delete users, view temp passwords
- Practice mode: randomized stratagem training with 30s timer, streak scoring
- Category filters for practice mode
- 1v1 mode via WebSocket: challenge system, lobby, real-time match (first to 5 rounds)
- Dashboard: personal stats, daily challenge, online users, recent sessions
- Leaderboard: top-20 by total score, sessions, match win rate
- SQLite database (WAL mode) for users, practice sessions, matches
- Helldivers 2 military UI theme (dark, yellow accents, grid overlay, scanlines)
- Mobile D-pad support
- Arrow key input with correct/wrong animations