Patch-Notes / v0.5.0

Patch-Notes v0.5.0

30.06.2026

Neu

Globaler Tech-Tree ist live

  • Tech-Tree geht live (globaler Baum) — der -Tech-Tree ist ab sofort sichtbar und spielbar. Freigeschaltet werden: Pakt-Karten, Köder-Karten, Gruppen-Meisterschaften und Jagd-Karten. Waffen-Bäume () bleiben vorerst dunkel — nur der globale Baum ist an.
  • Jagd-Karten — 6 neue Karten freischaltbar über den globalen Tree: Jagd: Normal / Schütze / Tank / Speeder / Dasher / Blob. Eine gesockelte Jagd-Karte zwingt den Tower, bevorzugt diesen Gegner-Archetyp anzuvisieren — wirkt mit jeder Waffe. Nur eine Jagd-Karte gleichzeitig aktiv (gattungs-exklusiv); nie droppbar, Tree-only.
  • Aufgebot Blob — neue Pakt-Karte Aufgebot: Blob (analog zu Aufgebot: Schützen/Tanks usw.), erhöht den Blob-Spawn-Anteil. Inklusive eigenem Node im globalen Tree und Cross-Link zum Köder-Zweig.
  • Tech-Tree: Zoom — Mausrad und Pinch-to-Zoom im Tech-Tree-Tab. Rauszoomen für Überblick, reinzoomen für Lesbarkeit. Maus und Touch gleichwertig.
  • Tech-Tree: Fortschritts-Meter — im Setup-Tab zeigt ein Meter, wie weit du bis zum nächsten Tech-Tree-Punkt bist (analog zum Hexa-Sockel-Meter). Header-Block links Erklärtext, rechts der Meter — kompakter 2-Spalten-Layout.
  • Tech-Tree: Fly-Card-Labels — die „Karte einsammeln"-Animation beim Freischalten zeigt jetzt den lesbaren Karten-Namen statt des internen Dev-Keys.
  • Skillpunkt-Schwellen: unbegrenzt — bisher hörte die Hexa-Skillpunkt-Skala nach 8 Einträgen auf. Jetzt berechnet sich jede weitere Schwelle als Formel (×2,5, auf 2 signifikante Stellen), ohne Cap.

Global-Tree-Topologie

  • Köder als Einstieg, Pakt-Cross-Links — die Tree-Struktur wurde neu verwurzelt: Köder-Knoten ist jetzt der Eingang, Pakt und Gruppen hängen daran. Jagd-Karten öffnen sich hinter den Gruppen-Meisterschaften. Pakt-Aufgebot-Knoten und Köder-Knoten desselben Typs sind quer verlinkt (OR-Logik).
  • Per-Typ-Spalten — im globalen Tree laufen Aufgebot → Köder → Jagd pro Gegnertyp als vertikale Spalte durch, statt Hub-and-Spoke.

Pakt-Achievements

  • Paktschmied / Pakttreue / Hochrisiko — drei neue Achievement-Familien: Paktschmied belohnt, viele Pakte über Runs zu häufen; Pakttreue belohnt, einen Pakt mehrere Runden am Stück zu tragen; Hochrisiko belohnt, möglichst viele Pakt-Typen gleichzeitig im Team zu haben. Coop: wer unter einer Pakt-Härte überlebt, bekommt Credit — egal wer den Pakt signiert.
  • Pakt-Achsen-Staffel — pro Pakt-Typ ein eigenes Stacking-Achievement: Erreiche Wave N, während diese Achse aktiv ist. 9 Achsen abgedeckt (Ansturm, Sturmlauf, Vitalität, Koloss, alle 5 Aufgebot-Typen). Tiers steigen mit der Pakt-Härte. Coop-Carry zählt (globale Achsen-Magnitude).

Pakt-Sichtbarkeit im Companion

  • Pakt-Hexas im Highscore — der Companion-Highscore zieht den Pakt-Anteil jetzt in die Hexa-Summe ein und schlüsselt ihn auf (Pakt+-Spalte, gleiche ⚠-Markierung wie im Endscreen).
  • Pakt+ im Endscreen — das Hexa-Breakdown im Endscreen-Overlay zeigt jetzt auch den Pakt-Hexa-Bonus als eigenen Posten (Rang+ · DMG+ · Boss+ · Pakt+), mit Count-up-Animation. Blendet sich bei 0 aus.
  • Pakt-Hexas in Admin-Recent-Grants — die Admin-Ansicht der letzten Hexa-Grants zeigt jetzt auch den Pakt-Anteil.

Multiroom

  • Gerichteter Raum-Join — Spieler können jetzt gezielt einen bestimmten Raum betreten (!tower <roomId>), statt immer automatisch zugewiesen zu werden. Nützlich für Crews, die sich in einem Raum sammeln wollen. Der gerichtete Join öffnet nie einen neuen Raum; wenn der Zielraum voll/zu ist, landet man in der gerichteten Warteliste dieses Raums.
  • Raum-Switcher: Zwei-Button-CTA — im Viewer gibt es zwei Buttons: „Aktueller Raum betreten" (gerichtet) und „Nächster freier Raum" (automatisch wie bisher).
  • Warteliste füllt bis zur Kapazität — öffnet sich ein Raum, werden jetzt so viele Wartende wie reinpassen nachgezogen (vorher: immer nur einer). Featured-Raum zieht ebenfalls aus der globalen Warteliste.

Fix

  • Aufgebot-Karten wirken jetzt tatsächlich — die Pakt-Karten Aufgebot: Schützen/Tanks/Speeder/Dasher/Blob berechneten den Typ-Mix-Boost und zeigten ihn im Pakt-Banner, aber das Spawning ignorierte ihn. Jetzt wirkt der Boost auf die Wellen-Zusammensetzung.
  • Ansturm-Pakt verkürzt jetzt das Spawn-Intervall — analog zu Aufgebot: Ansturm (pact_spawn_rate) erhöhte rechnerisch das Spawning-Tempo, aber der Wert kam nie beim Spawn-Scheduler an. Behoben.
  • Pakt-Banner: NaN-Pillen bei Teil-Pakten behoben — wenn nicht alle Pakt-Felder belegt waren, standen im Banner NaN-Pillen. Undefined-Guard gesetzt.
  • Mortar-Icon steht wieder aufrecht — das Mortar-Icon stand auf dem Kopf (sowohl im Companion-SSR als auch im Client). Beide Ports gefixt (sweep-flag).
  • Gegner-Leiste: kein Layout-Sprung beim Hover — die Gegner-Leiste springt beim Überfahren nicht mehr; Strip läuft jetzt unten. Wave-Start: Gegner-Karte wird nicht mehr zu früh gezeigt (Race-Fix).
  • Pakt-Baum: Waffen-Punkte-Pill ausgeblendet — die irreführende „★ 0 global-Punkte"-Pill im Pakt-Baum-Header (ließ „keine Punkte" vermuten) wird jetzt nicht mehr angezeigt.
  • Top-Pakt-Banner aus dem Viewer-HUD entfernt — der Banner oben im HUD störte den Spielbereich. Pakt-Info lebt kompakter im Pakt-Panel.
  • Pakt-Glyph-Kanon — das Pakt-Symbol im Catalog und im Pakt-Banner zeigen jetzt überall dasselbe Icon (Catalog-Kanon), statt zwei verschiedene Varianten.
  • Pakt-Panel: Reward-Pillen laufen nicht mehr aus — bei vielen Pakt-Rewards flossen Pillen aus dem Panel. Behoben.
  • Tech-Tree: Meter-Escaping-Regression behoben (P0) — nach ui-252 wurde der Meter-HTML-String als Klartext in den Header gerendert. Behoben.
  • Pakt-Tile: Double-Dip-Info auch auf ungesockelter Karte — die Info, dass eine Pakt-Karte als Team-Booster zählt, wird jetzt auch dann angezeigt, wenn die Karte nicht gesockelt ist.
  • Aktive Pakte als Menüpunkt im Stats-Panel — aktive Pakte sind jetzt im left-info Stats-Tab sichtbar (Spiegel des Pakt-Banners).
  • Raum-Chip in die Ecke, kein Layout-Shift — der „Raum N · X Tower"-Chip sitzt jetzt stabil oben rechts im Companion-Panel ohne den Rest des Layouts zu verschieben.
  • Raum-Switcher: „Stream"-Marker bei Raum 1 entfernt — mit dem gerichteten Join ist der Marker redundant.
  • Raum-Marker zeigt im Endscreen „Game Over" — statt der Wellennummer steht im Raum-Switcher jetzt „Game Over", wenn ein Raum im Endscreen ist.
  • Gruppen-Bonus-Panel: Karten-Tile-Tooltip — Hover über eine Geber-Zeile im Gruppen-Bonus-Panel zeigt die echten Gruppen-Karten-Tiles dieses Towers mit Tier.
  • Sockel-Karten: Layout-Parität mit Inventar — gesockelte Karten sehen jetzt genauso aus wie im Inventar (gleiche Größe, gleiche Schrift, slot-füllend).
  • Waffen-Glyphen: kein Load-Flash mehr — Waffen-Glyphen (Header-Pill + alle weiteren Stellen) werden jetzt server-seitig als SVG gerendert. Der kurze Flicker beim Laden ist weg.
  • Featured-first aus dem globalen Join entfernt — der automatische Join-Pfad bevorzugt den Stream-Raum nicht mehr. Wer Raum 1 will, wählt ihn gezielt per „Aktueller Raum betreten".

Balance

  • Mortar: mehr Reichweite, seltener, deutlich mehr Fläche — Range ×1,5, Feuerrate ×0,5, Splash-Radius ×2 (Fläche ×4). Der Mortar wird zur trägen Distanz-Flächenwaffe statt Einzelziel-Schaden.
  • Mortar: Ziel-Bewegung vorhalten — der Mortar rechnet jetzt die Ziel-Bewegung bei der Flugzeit ein und wirft die Granate dorthin, wo der Gegner beim Einschlag sein wird (Lead/Intercept). Vorher lief der Gegner der Granate davon.
  • Laser: Feuerrate halbiertbaseFireRate 3,0 → 1,5 Ticks/s. Gewollter Nerf.
  • Railgun-Beam verjüngt sich — der Railgun-Beam wird an jeder Trefferposition dünner, sodass der Pierce-Schadens-Abfall visuell lesbar ist. Reiner VFX, kein Gameplay-Eingriff.
  • Ranged-Stopdistanz-Kurve flacher — die Wave-Skalierung der Ranged-Stopp-Distanz gesenkt (0,5 → 0,2 pro Wave): Range-Druck setzt deutlich später ein.
  • Pakt-Typ-Mix und Ansturm wirken jetzt im Spawning — siehe FIX oben; Balance-Wirkung: Aufgebot-Pakte verändern ab sofort tatsächlich die Gegner-Zusammensetzung, Ansturm erhöht das Spawn-Tempo spürbar.

Unter der Haube

  • Schema-Migration 035 (hexa_grants_pact): die Tabelle hexa_grants trägt jetzt pact_shared_hexas + pact_personal_hexas.