Spielerentwicklung-Tracker, MaxPot-Chip & die finale Card-Welle
Eine neue Seite und ein Schwung Detailarbeit auf den bestehenden: players_development.php zeigt dir die kumulative Stärke-Entwicklung jedes aktiven Spielers seit Spielstart, game.php und player.php sind die letzten DataTables losgeworden, ein neuer 🎯 Max Pot.-Chip macht ausgereizte Spieler unabhängig vom Scout-Level sichtbar — und unter der Haube haben wir das Demo-Spielerlebnis für Cookie-User repariert.
📈 Neue Seite: Spielerentwicklung-Tracker
- Im Seitenmenü unter „Beste Spieler" findest du jetzt Spielerentwicklung — eine AJAX-gefilterte Player-Card-Grid mit allen aktiven Spielern der Liga (ohne Draft-Pool, ohne Karriereende)
- Pro Spieler wird die älteste oldstaerke aus der
player_progression-Tabelle als Start-OVR verwendet — daraus ergibt sich die kumulative Aufwertung/Abwertung seit dem ersten Saisonwechsel, prominent als bunter Δ-Chip auf jeder Karte (grün/rot/grau) - Sortier-Pills: Aufwertung (Default ↓), aktueller OVR/POT, Start-OVR, Alter, Name. Positions-Filter, Mini-Pager, persistenter State via
localStorage— gleicher UX-Standard wie players.php / players_stats.php - Performance-Trick: das Start-OVR wird über eine einzige
GROUP BY player + MIN(id)-Pre-Aggregation alsLEFT JOINaufgelöst statt mit einem korrelierten Subquery pro Row — der erste Wurf brauchte 5+ Sekunden pro Sortier-Klick, jetzt sind es <100 ms auf einer ~3500-Spieler-Liga - 5-Schritt-Tutorial mit explizitem W1-Hinweis: ohne Saisonübergang stehen noch keine Daten fest, dann liest alles „+0" — sobald die erste Saison vorbei ist, füllt sich die Liste automatisch
🎯 Persistent „Max Pot."-Chip auf jeder Player-Card
- Sobald
staerke >= potentialist (Spieler hat sein Limit erreicht), erscheint ein dezenter gold-amber Chip „🎯 Max Pot." im Badges-Cluster neben Rookie/Retire/Injury - Sichtbar unabhängig vom Scout-Director-Level — wer auf Lvl 3 sitzt und nur Pot-Sterne sieht, weiß jetzt trotzdem auf einen Blick, wer sein Potenzial schon ausgereizt hat. Reine Binär-Info, kein exakter Pot-Wert-Reveal
- Eingebaut in alle Card-Render-Sites:
players_pcard.php,team_pcard.php,contracts.php,_contracts_blocks.phpund der player.php Hero-Card-Statusrow. Karriereende-Spieler bekommen den Chip nicht — redundant zum Retire-Icon
🃏 game.php — finale 7 DataTables raus
- 📊 Spielübersicht ist jetzt eine Vergleichs-Card im H2H-Stil: pro Stat-Zeile
[Away-Wert] ━━━ [Home-Wert]mit proportional gesplittetem Farbbalken in beiden Team-Farben, plus Sektions-Divider 🛡️ Defense / 🥅 Special Teams / 🤕 Injuries - Spieler-Statistiken pro Team: die 3 alten OFF/DEF/SPE-Tabellen sind in eine filterbare
.gpc-gridpro Team gemerged. Drei Toolbars: Positions-Filter, Positionsgruppen-Filter (Alle/OFF/DEF/SPE — farbcodiert), Sort-Pills (Pos/TD/Ru Yds/Pa Yds/Rec Yds/T/S/Int/FG), plus zusätzlicher Statistik-Filter (zeigt nur Spieler mit ≥ 1 in der gewählten Stat — z.B. „nur Spieler mit mindestens einem Touchdown") - Per-Spieler-Card mit positions-aware Stat-Pill-Block (Pills mit Wert = 0 werden ausgeblendet), Phase-farbcodierter Left-Border, Game-MVP-Highlight läuft jetzt über
document.querySelectorAll('.gpc-card[data-pid=...]')statt jQuery-Row-Painter - Die Dev-Debug-Box (lokal) nutzt jetzt die Snapshot-Werte aus der schedule-Row (
ovr_home,off_home…) statt der Live-Team-Werte. Damit zeigt die Hero-Card und der Debug-Block dieselbe OVR, statt 82 oben und 73,89 unten
📋 player.php — alle Tabellen umgebaut, Action-Toolbar in die Hero-Card
- 7 legacy DataTables sind raus: Renewal-Offers, Player-BIA, Awards, Statistiken, Entwicklung, Verletzungen, History — alles jetzt Cards. Die player-history-Lokalisierungslogik (über 20 verschiedene Action-Patterns) bleibt 1:1 erhalten
- Die Player-BIA-Strip ist komplett entfallen — sie dupliziert nur, was schon in der Hero-Card oben steht. Stattdessen wurden alle Action-Buttons (Favorit, Sign FA, Trade-Offer, Quick-Resign, Negotiate, Release, Persuade) in die Hero-Card direkt unter den Stat-Tiles integriert, kontextabhängig sichtbar
- Sortierbar nach Saison + Woche in der Awards-, Injury- und History-Card-Liste
📝 contracts.php + Auslaufende Verträge
- Auf
contracts.phptauchen jetzt auch Karriereende-Spieler in der Vertragsübersicht auf — ihre Restverträge zählen weiterhin gegen den Cap, also gehören sie in die Übersicht. Visuell deutlich abgegrenzt: dunklerer Grau-Rahmen, diagonale Schraffur,filter: saturate(0.6)und Retire-Badge im Header - Das gemeinsame Partial
_contracts_blocks.php(start.php + team.php) ist auf das pcard-Vokabular migriert: 📋 Auslaufende Verträge mit Negotiate/Quick-Resign/Release-Actions, 🪦 Karriereende-Spieler mit Release + Persuade (Gold-CTA) — Negotiate/Quick-Resign machen bei Retirern keinen Sinn und sind raus
🔍 Demo-Modus für Cookie-User repariert
- Bisher griff der Demo-Fallback nur, wenn der Cookie komplett leer war — Visitors mit einem alten oder kaputten eigenen Spiel im Cookie landeten auf einer leeren Shell statt der Demo
- Neu: ein kurzlebiges
ff_demo_session-Cookie (2 h TTL, jeder Demo-Hit refresht).?demo=1setzt es, jeder Navigationsschritt bleibt in der Demo,?exitdemo=1(Banner-CTA) oder ein Wechsel via?continuegame=ID/?changegame=1löscht es - Zusätzlich ein Hollow-Game-Safety-Net im
header_connect.php: wenn das eigene Spiel im Cookie 0 Spielerzeilen hat (kaputter Zustand), wird es ignoriert und auf Demo durchgegriffen
🐛 Sammelsurium
- players.php: zwei neue Filter-Checkboxen „ohne Draft-Spieler" und „ohne Free Agents" (mutually exclusive zu „nur Draft" / „nur FA"); bei „nur Draft" + „nur FA" gleichzeitig wird jetzt korrekt per OR gefiltert statt 0 Ergebnisse zu liefern
- Stärke „? n/a"-Bug: gedraftete Rookies mit
draft=2wurden fälschlich durch den Draft-Scout-v2-Render geschickt und zeigten dauerhaft „? n/a" statt ihrer echten Stärke. Gate jetzt strikt aufdraft=1(nur Draft-Pool) - EOS-Forecast (franchise.php) berücksichtigt jetzt die Kosten der Draft-Scout-Abteilung für die restlichen Saison-Wochen — bei mehreren Scouts machte das vorher mehrere Millionen Diskrepanz aus
- Scouting v2 Auto-Priority: wenn die Automatik vor Phase 3 aktiviert ist, materialisiert der Phase-3-Generator die Auto-Pick-IDs in
team.scouting_priorityund sperrt die Liste ab W21. Davor wurde der Boost zwar applied, aber die UI zeigte „0 / 24 Slots belegt" — verwirrend bis zur Unbenutzbarkeit - Notification-Bar Dismiss: sticky Tab-Leisten auf draft.php und team.php waren beim Schließen einer Benachrichtigung mitten im Bild hängen geblieben — jetzt rutschen sie korrekt unter den Newsticker
- Team-Schedule-Highlight: am Saisonende (kein „nächstes Spiel" mehr) wurden alle 25 gespielten User-Team-Spiele in color2 hervorgehoben. Jetzt: kein Highlight, wenn kein nächstes Spiel mehr ansteht
- Entwicklung-Roh-HTML: die
grund-Spalte enthält serverseitig gebautes<font color="green">…</font>-Markup — wurde auf team.php und player.php fälschlich escaped und als Roh-Text angezeigt. Jetzt korrekt als Farb-Reasons gerendert - Vertragsverhandlungs-Overlay: POT zeigte „?" statt der Sterne bei Scout Director Lvl 2-3 — Gate war off-by-one. Jetzt konsistent mit allen anderen Player-Cards
Mit dem Spielerentwicklung-Tracker hast du endlich einen einzigen Ort, an dem du sehen kannst, welche Talente sich in deinem Spiel am stärksten verbessert haben — und der MaxPot-Chip macht endlich klar, wer aus dem Wachstum schon raus ist, ohne dass du auf Scout Director Lvl 4 hochziehen musst. Plus: zwei der drei zentralen Spiel-Detail-Seiten (game.php, player.php) sind jetzt komplett tabellenfrei, mobile-first und konsistent mit dem Rest der App.