Onboarding-Schliff: Custom-Imports validiert, Tutorial mit Step-Indicator, Discord-CTA
Diesmal liegt der Fokus auf Onboarding und Custom-Games: Eigene Liga-Imports werden serverseitig validiert (mit i18n-Fehlermeldungen), Custom-Team-Logos rendern jetzt als SVG mit transparentem PNG-Fallback, das Tutorial bekommt einen klaren Step-Counter, und ein dezenter Discord-CTA unterhalb der Spielstände-Liste lädt zur Community-Session ein.
📥 Custom-Imports: Datei-Upload + Validator
- Importseite akzeptiert jetzt direkt CSV-File-Uploads (Teams, Spieler) statt nur URL-Eingaben — schnellerer Einstieg für Liga-Importe vom Tabletop oder aus eigenen Tools
- Server-Validator prüft beim Upload: Spaltenanzahl, Pflichtfelder, Wertebereiche (Stärke 0–100, Alter 18–45 etc.) und schlankere Schema-Variante mit weniger Pflicht-Spalten
- Fehlermeldungen in DE + EN mit lokal-spezifischen Tausender-Trennzeichen (z.B. „Zu wenig Fans (1.000.000) — Mindestwert 1,5 Mio." vs. EN „Fanbase too low (1,000,000) — minimum 1.5M")
- Off-by-One-Bug in den CSV-Templates beim ersten Spieler-Datensatz behoben — Templates laden ab sofort sauber
- Generator
nfl-import53.pyauf das schlankere Schema synchronisiert
🛡️ Custom-Game-Logos jetzt als SVG
- Custom-Game-Spielstände rendern Team-Logos jetzt primär als SVG (statt PNG) — gestochen scharf in jeder Größe, kleinerer Footprint
- Pre-Cache vor
startgame.php: Sobald die Logo-URL bekannt ist, wird die SVG asynchron im Hintergrund geholt; ein generischer fake-SVG-Fallback steht bereit, falls der Download fehlschlägt .htaccess-Rewrite leitet fehlende.svg-Anfragen automatisch auf.pngum — alte Custom-Spielstände ohne SVG-Asset funktionieren weiter- Permanent fehlgeschlagene Downloads werden bei Wiederholung übersprungen, parallele Retries werden gebündelt — sauberer Custom-Game-Onboarding-Flow auch bei wackeligen Quell-CDNs
🎓 Tutorial-Schliff
- Neuer Step-Indicator direkt unter der Tutorial-Navigation: zeigt jederzeit „Schritt X von Y", damit klar wird, wie viel noch ansteht
- EN-Typo „+5%% OVR" → „+5% OVR" gefixt
- Aktualisierter Roster-Depth-Screenshot in Tutorial-Schritt 4
- DE-Wording auf
franchise.php: „Konto" → „Balance" für die EN-Version, damit das Vokabular international konsistent bleibt
💬 Discord-CTA prominent platziert
- Neuer Discord-Banner direkt unter dem „Bestehende Spiele"-Block auf der Startseite — sofort sichtbar für jeden, der die Seite öffnet
- Im Feedback-Overlay landet ebenfalls ein Discord-CTA unter dem Submit-Button — Bug-Reports und Feature-Wünsche bekommen damit einen direkten Live-Channel
- Asset
grafiken/discord.pngausgeliefert
🎨 Team-Polishings
teams.php: neue Spalte „Team-Farben" mit kleinem Gradient-Chip (color1 → color2) — sortier- und durchsuchbar- 12 fiktive Teams mit zu hellem color2 bekommen einen Kontrast-Boost, damit weiße Schrift auf der Sekundärfarbe zuverlässig lesbar bleibt — keine grauweißen Player-Namen mehr im Trade- oder Roster-Overlay
🤝 Trade-Cap-Konsistenz
trade.phpbekommt einen 3-Pick-Cap pro Seite als Pendant zum bereits existierenden 5-Player-Cap — verhindert mega-übergroße Pick-Pakete, die das Draftroom-Limit später sprengen würdencheckTeamNeeds()respektiert die Cap-Sperre: bereits limitierte Checkboxen werden nicht mehr fälschlich wieder aktiviert, wenn die Bedarfs-Highlights neu gerendert werden- Selektierte Spieler werden jetzt zuverlässig aus dem
idstringgezählt statt aus:checked— funktioniert auch nach DataTable-Filter-Wechseln, die nicht-passende Zeilen aus dem DOM detachen
Onboarding-Tag: Custom-Imports werden defensiver, Tutorial wird klarer, Custom-Logos werden schöner, und der Discord-Eingang ist für alle sichtbar. Plus die letzten Lücken im Trade-Cap-System geschlossen, damit Pick-Pakete nicht mehr aus dem Ruder laufen.