Der Stream läuft jetzt in mehreren Räumen gleichzeitig. Raum 1 bleibt der Featured-Raum auf dem Stream (OBS-Quelle unverändert). Wenn Raum 1 für neue Joins zu ist, öffnet sich automatisch ein Kohorten-Raum (Raum 2, 3, …) — mit eigenem Start-Timer (60 Sekunden Sammelphase), eigenem Run und eigenem Endscreen.
Raum-Switcher im Live-Viewer (oben rechts) — als eingeloggter Zuschauer kannst du zwischen aktiven Räumen umschalten und den jeweiligen Run live verfolgen. Die OBS-Quelle bleibt fest auf Raum 1.
Raum-Chip im Dein-Tower-Panel — zeigt dir welchen Raum du gerade besetzt und an welcher Stelle in der globalen Warteschlange du stehst, wenn alle Räume voll sind.
Globale Warteliste — !tower landet künftig immer irgendwo. Bist du in keinem Raum sofort platzierbar, kommst du in die globale Warteschlange und wirst beim nächsten freien Raum-Start automatisch reingezogen.
PWA — App auf Handy und Tablet installierbar
Die Companion-Website lässt sich jetzt als App auf deinem Homescreen installieren (Android/iOS/Desktop über den Browser-„Installieren"-Prompt oder „Zum Homescreen hinzufügen"). Eigenes Icon, Vollbild-Start, Offline-Fallback.
Mobile — vollständiger Viewer auf dem Handy
Landscape-Modus im Viewer — die Spielansicht dreht sich beim Kippen des Handys automatisch quer (Landscape-first). Ein Hinweis erscheint beim ersten Hochkant-Besuch während eines Runs.
Touch-Hover — Karten und Tower per Antippen; funktioniert genauso wie Maus-Hover auf dem Desktop.
Help + Highscore mobil — beide Overlays passen sich jetzt vollständig an kleine Bildschirme an.
Breakpoint-System — konsistente Touch-Targets und Layout-Anpassungen quer durch den Companion.
Channel Points — eigene Belohnungen
Der Companion erstellt und verwaltet jetzt eigene Channel-Point-Belohnungen direkt auf Fiftys Kanal — kein manuelles Anlegen mehr nötig.
Auto-Fulfill/Cancel — Einlösungen werden sofort bestätigt (Fulfill) oder zurückgebucht (Cancel), wenn das Spiel sie nicht verarbeiten kann.
Gameplay
Schadens-Pool — 10 % deiner DMG-Hexas fließen in einen geteilten Pool, der jedem Tower im Run zugute kommt. Wer mehr Hexas investiert hat, trägt mehr in den Pool ein.
Ranged-Stopp-Distanz skaliert mit der Wave — Schützen-Gegner halten ab höheren Waves größeren Abstand zum Tower. Sichtbar als Reichweite-Zeile auf der Gegner-Intro-Karte.
Dasher: Ausweich-Ladungen — Dasher starten ab Wave 24 mit einer Ausweich-Ladung; das Maximum steigt mit der Wave auf bis zu 5. Mehrere Ladungen = Burst-Ausweichen in Folge möglich. Sichtbar als Pip-Zeile auf der Gegner-Intro-Karte.
Rocket / Swarm: Reichweiten-Cap — Raketen und Swarm-Sekundärraketen haben jetzt eine maximale Flugweite (2× Tower-Reichweite). Raketen die ihr Ziel durch Manöver verlieren, suchen sich ein neues.
Kohorten-Start-Timer auf 60 Sekunden — eine Kohorten-Lobby sammelt 60 Sekunden, bevor der Run startet (vorher: 10 Minuten). Weniger Wartezeit für alle.
Fix
Re-Join nach Run-Ende — war nach einem Spielende manchmal blockiert durch einen internen Zombie-State. Behoben, neuer !tower funktioniert sofort.
Boss-Karte blinkt nicht mehr — die Boss-Info-Karte auf dem Endscreen zuckte beim Übergang. Behoben.
Template-Button: neutrales Label ohne Template — zeigte bisher „0 Schritte" wenn kein Template hinterlegt war, was verwirrend wirkte. Erscheint jetzt nur wenn ein Template aktiv ist.
Spectate-Raumwechsel — beim Wechsel zwischen Räumen per Raum-Switcher blieben manchmal Lobby- oder Endscreen-Overlays hängen. Behoben; der WS-Watchdog erkennt und behebt steckengebliebene Verbindungen.
Raum-Spawn/Teardown sichtbar — neu erscheinende oder schließende Räume werden jetzt sofort an alle bestehenden Viewer-Verbindungen gepusht, ohne Reload.
Auto-Switch bei Raumwechsel stabil — der Viewer wechselt beim Join-Routing deterministisch via Raum-ID, nicht mehr per Zufall (Race-Condition behoben).
Lobby-/Warteschlangen-Label im Raum-Panel — der Subtext wechselt korrekt zwischen „in der Lobby" und „in der Warteschlange" beim State-Übergang.
Viewport und Service-Worker auf Mobile — Viewport-Meta-Tag korrigiert; Service-Worker nutzt stale-while-revalidate für besseres Update-Verhalten.
Rotate-Hint: Schließen-Button — der X-Button des Landscape-Hinweises war auf manchen Geräten nicht klickbar (Binding-Timing-Fehler). Behoben.
Lobby-Routing und Dedup — trat ein Spieler mehrfach oder in schneller Folge !tower, konnte es zu doppelten Queue-Einträgen kommen. Behoben; Featured-Raum wird dabei korrekt bevorzugt.
Achievement-Schwellen angepasst — Die Attribute-Level-Achievements greifen jetzt bei 30 / 70 / 120 investierten Levels statt der bisherigen Werte. Bereits erreichte Stufen bleiben angerechnet.
Tausendertrennzeichen — Hexa-Werte, Achievement-Fortschritte und Zahlen im Viewer-Panel zeigen jetzt korrekte Tausenderpunkte (z.B. 12.500 statt 12500).
Endscreen-Zoom — auf kleinen Bildschirmen und in skalierten OBS-Fenstern passt sich der Endscreen jetzt dynamisch an statt hart auf 1,3× zu zoomen.
Unter der Haube
Multi-Room Graceful-Deploy-Drain: beim Deploy werden laufende Runs sauber abgewartet und alle Räume danach neu befüllt — kein Spieler geht verloren.
Retry-on-Conflict für DB-Schreibtransaktionen (Draws, Meta-Level-Invest) — verhindert stille Fehlschläge bei gleichzeitigen Zugriffen.
Keine DB-Änderungen (Prod bleibt bei Migration 034).