Patch-Notes v0.3.0
Neu
- Boss-System: 6 Arten, jede mit eigenem Charakter — bisher war jeder Boss eine magenta HP-Wand. Ab jetzt hat jede 10. Wave einen eigenen Typ: Normal (magenta Stern, reine HP-Wand), Schütze (oranges Dreieck, bleibt auf Distanz und feuert), Tank (lila Pentagon, frisst viel Schaden weg), Speeder (grünes Quadrat, deutlich schneller), Dasher (gelbe Raute, weicht Projektilen aus) und Blob (magenta Cluster, splittet beim Tod in 4 kleine Blobs). Welcher Boss kommt, wird pro Block gewürfelt.
- Boss-Karte im Viewer zeigt die Art — die Live-Ticker-Karte erscheint beim Boss-Spawn links oben mit Icon und Farbe des jeweiligen Boss-Typs. HP-Leiste, DMG-Ranking und Award-Projektion bleiben, die Karte signalisiert jetzt auf einen Blick womit man es zu tun hat.
- Viewer: Gegner in Boss-Art-Farbe — alle Gegner nehmen während einer Boss-Wave die Farbe des aktuellen Boss-Typs an. Das Wave-Theming macht sofort sichtbar was der Boss mitgebracht hat.
- Köder-Karten: Boss-Würfel beeinflussen — 6 neue Karten (eine pro Boss-Art), die die Wahrscheinlichkeit erhöhen, dass genau dieser Boss-Typ als nächstes kommt. Run-global — alle Tower bringen ihre Köder-Karten in einen gemeinsamen Pool ein. Kein Hexa-Reward, kein Penalty: der Preis ist der Sockel-Slot. Freigeschaltet über den globalen Tech-Tree (dormant bis Fifty den Tree aktiviert).
- Highscore zeigt die Boss-Folge des Runs — im aufgeklappten Run-Detail siehst du jetzt in welcher Reihenfolge die Boss-Typen in diesem Run erschienen sind. Alt-Runs ohne erfasste Daten zeigen „nicht erfasst".
- Credits-Balance-Graph im Viewer — neben DPS- und Income-Graph gibt es jetzt einen dritten Graph in der Toggle-Pille: der Credits-Balance-Verlauf zeigt wie der persönliche Kreditstand über den gesamten Run schwankte.
- Highscore-Versions-Board — im Highscore-Tab siehst du jetzt neben dem Run-Score auch mit welcher Companion-Version der Run gespielt wurde. Ermöglicht es, Runs vor und nach Balance-Updates klar zu trennen.
- Template-Endmode: Fokus-Set nach Template-Ende wählbar — im Template-Editor kannst du jetzt festlegen welche Attribute die Cheapest-Cascade nach Abschluss aller Template-Schritte weiterhochzieht. Statt immer in den AllMode zu fallen — du wählst die Teilmenge. Kein Template gesetzt oder keine Auswahl getroffen = heutiges AllMode-Verhalten bleibt.
Fix
- AllMode-Falle nach Fokus-Klick — wenn man auf eine Stat-Zeile klickte, um den Fokus zu setzen, sprang die Seite danach manchmal zurück in den AllMode. Behoben: kein Re-Assert mehr nach dem Fokus-Klick.
- Endscreen: lange Usernamen wurden abgeschnitten — bei sehr langen Twitch-Namen überlagerten sich Einträge im Endscreen-Ranking. Behoben durch Ellipsis-Clamp.
- Endscreen: tote Tower ohne Durchstreichungs-Styling — gestorbene Tower wurden im Endscreen-Ranking nicht mehr optisch als ausgeschieden markiert. Behoben.
- Fremde Tower zeigten kein (+Y) bei Hexa-Meta-Levels — wer einem laufenden Run spät beitrat (Late-Join), sah in der Detailansicht fremder Tower keine Hexa-Meta-Level-Anzeige (
+Y). Ursache: der Late-Join-Delta sendete die Meta-Level-Diffs nicht mit. Behoben.
- Projektil-Culling-Cleanup — Projektile außerhalb des sichtbaren Bereichs wurden in bestimmten Konstellationen trotzdem gerendert (DPR-Fix + Block-Scope-Problem). Behoben.
- Tiefenrekord-Achievement klarer beschrieben — die Beschreibung sagt jetzt eindeutig, dass deine eigene Fall-Welle zählt (wie weit dein Tower überlebt), nicht die Welle der ganzen Runde.
Unter der Haube
- Dev- und Mock-Login-Routen abgesichert —
/dev-Routen sind jetzt hinter einem Admin-Guard und einem konfigurierbarenALLOW_MOCK_LOGIN-Flag. Kein unbeabsichtigter Zugang in Prod-Umgebungen.
- hexa_invested-Snapshot im Run-Abschluss (Admin-seitig) — das investierte Hexa pro Waffe wird beim Run-Ende erfasst und auf der
/admin/balance-Ansicht als Kontext-Spalte angezeigt. Ermöglicht bessere Balance-Auswertung (hoher Hexa-Investment = natürlich höhere DMG-Werte).
- Perf-Reports stempeln die App-Version — neue Viewer-Perf-Reports tragen jetzt die Companion-Version mit.
/admin/perfkann damit nach Version filtern — alte Reports erscheinen nur unter „Alle".
- Schema-Migrationen 031–034 (alle additiv, kein DROP):
- 031
hexa_grants.hexa_invested INT NULL— Snapshot des investierten Hexas beim Run-Ende (web-165). Alt-Runs: NULL. - 032
viewer_perf_reports.app_version VARCHAR(16) NULL— App-Version beim Perf-Insert (srv-106). Alt-Reports: NULL. - 033
viewer_templates.endmode_json JSON NULL— Fokus-Set nach Template-Ende (web-166). NULL = AllMode-Default. - 034
runs.boss_sequence MEDIUMTEXT NULL— geordnete Boss-Art-Abfolge pro Run als JSON-Array (web-168). Alt-Runs: NULL.
Alle vier Migrationen sind ADD COLUMN IF NOT EXISTS — idempotent, vollständig rückwärtskompatibel. Rollback bei Bedarf manuell per ALTER TABLE … DROP COLUMN (forward-only-Policy analog 029–030).