# Das Buch der Gefallenen - Changelog

## Version 8.14.2 — "Kondolenzenbuch: Guild-Sync aktiv"

### UI.lua
- **Kondolenzenbuch**: Nach dem Speichern einer Kondolenz wird `Sync:BroadcastKondolenz()` aufgerufen → Nachricht wird per `GUILD`-AddonMessage an alle Mitspieler mit Addon gesendet
- Kondolenzen werden so live in der Gedenkhalle (Hover-Tooltip) bei allen Gildenmitgliedern sichtbar

### Sync.lua (bereits enthalten)
- `BroadcastKondolenz(dKey, text)` sendet via `C_ChatInfo.SendAddonMessage("GDLSync", ..., "GUILD")`
- Empfangs-Handler für `KONDOLENZ` speichert eingehende Einträge in `GuildDeathLogDB.kondolenze` und refresht die Ansicht
- `BroadcastBulletin` + Empfangs-Handler für Schwarzes Brett ebenfalls aktiv

## Version 8.13.3 — "UI-Feinschliff: Namen, Kapitel, Icons"

### UI.lua
- **Abenteurer der Gilde**: Spielernamen ohne `OUTLINE`-Flag → weichere, lesbare Schrift
- **Inhaltsverzeichnis**: "Berufe der Gilde" entfernt (Berufe bereits in Abenteurer integriert)
  - Kapitel-Nummern neu: VIII→VII Titel, IX→VIII Kalender, IX Gilden-Regeln, X/XI/XII Auswertungen

### Titles.lua
- **Koenigs-Bezwinger**: Icon von `INV_Misc_Head_Ogre_01` (fehlendes Vanilla-Asset) auf `INV_Crown_01` geändert → Icon wieder sichtbar

## Version 8.13.2 — "Chronik + Gedenkhalle zusammengeführt"

### UI.lua — Kapitel-Merge
- **Chronik der Gefallenen** als eigenes Kapitel entfernt (war redundant mit Gedenkhalle)
- `RenderChapter("chronicle")` → leitet jetzt auf `RenderMemorial()` um (SavedVars-Kompatibilität gewahrt)
- `UpdateChronicle()` → Compatibility-Shim, ruft intern `RenderMemorial()` auf
- `isChronicle`-Flag in `SetRightPageHeader` auf `isMemorial` umgestellt → statsFrame/divider bei Gedenkhalle sichtbar
- Refresh-Button (Toolbar) ruft nun `RenderChapter("memorial")` auf
- Standard-Kapitel beim Öffnen: `"memorial"` statt `"chronicle"`
- `CHAPTER_TITLES`: Eintrag `chronicle` entfernt

### UI.lua — RenderMemorial (neue Vollversion)
- Alle Tode gelistet (nicht mehr auf 30 limitiert), neueste zuerst
- Stats-Banner: Gesamt / Heute / Diese Woche
- Hover-Tooltip pro Eintrag: Name, Klasse, Level, Zone, Mörder, Fähigkeit, Letzte Worte, Nachruf, Datum
- Hover-Hintergrundfarbe in Klassenfarbe
- Dekorative Blutflecken ab 5+ Gefallenen
- Kerzen-Icon (Helligkeit tageszeit-abhängig)
- Nachruf-Edit-Button pro Eintrag

## Version 8.12.0 — "Abenteurer der Gilde (GRM-Style Member Profiles)"

### Guild.lua — Erweitertes Daten-Scanning (GRM-Pattern)
- `GetGuildRosterLastOnline(i)` integriert → speichert `lastOnlineYears/Months/Days/Hours` pro Mitglied
- `status` Feld wird gespeichert: 0=offline, 1=online, 2=AFK, 3=DND
- Neue `Guild:FetchClubData()` Funktion nutzt `C_Club.GetMemberInfo` (Classic Era +2023 Communities API):
  - Lädt `race` + `raceId` via `C_CreatureInfo.GetRaceInfo`
  - Lädt `sex` (2=männlich, 3=weiblich)
  - Lädt `clubProf1/clubProf2` (Berufs-ID + Rang)
  - Alle C_Club-Daten additiv (überschreiben keine vorhandenen Werte)
  - Wird 2s nach jedem Scan asynchron aufgerufen via `C_Timer.After`
  - Vollständige `pcall`-Absicherung für Classic-Kompatibilität

### UI.lua — Neues Kapitel VIII: "Abenteurer der Gilde"
- Neuer Eintrag im Inhaltsverzeichnis (Kategorie "Gilde")
- **Banner**: Zeigt Gesamt-/Online-/Offline-Zahl mit farbigen Indikatoren
- **Rang-Sektionen**: Mitglieder nach Rang gruppiert (wie Meilenstein-Kategorien)
  - Header: Rang-Icon, Rang-Name, Online/Gesamt-Zähler
  - Farbton des Headers variiert mit Rang-Index (blau-grün Gradient)
- **Member-Karte** (`RenderMemberCard`) — 56px hohe Karte pro Mitglied:
  - Klassenfarbener Akzentbalken (links), Klassen-Icon (36x36)
  - Online-Status-Punkt (grün/gelb/rot/grau)
  - **Name** in Klassenfarbe (13pt OUTLINE)
  - **Subline**: Stufe · Rasse · Klasse (aus `RACE_NAMES_DE` + `CLASS_NAMES_DE_ADV`)
  - **Rang** (darunter, grün)
  - **Zone** (unten links)
  - **Online/LastSeen** (oben rechts): "● Online" / "vor X T." etc.
  - **Achievement-Punkte** (★ gold)
  - **Berufe** (unten rechts): aus Professions-Modul oder C_Club-Fallback
  - Hover-Highlight + **Tooltip** mit Note + Offiziersnotiz
- Bestehende Chapter-Nummerierung angepasst (IX–XIV)

---

## Version 8.11.0 — "Guild Leave ≠ Tod Fix"

### Guild.lua — ProcessLeave(): Falsch-Tod-Erkennung entfernt
- **Kritischer Bug**: Jeder Gilden-Austritt (freiwillig, Kick, Rename) hat automatisch einen Todeseintrag erstellt
- Ursache: `ProcessLeave()` rief `Sync:ProcessIncomingDeath()` auf für jeden fehlenden Roster-Eintrag
- Fix: Automatische Todeserstellung bei Guild-Leave komplett entfernt — Tod nur noch via `UNIT_DIED` / Deathlog
- `ProcessLeave()` pflegt nur noch `memberHistory` + `_removed` Flag in `guildData.members`

### Guild.lua — CommitSnapshot(): Offline-Leave-Erkennung
- Mitglieder die während Offline-Zeit die Gilde verlassen haben werden jetzt auch als `_removed = true` markiert
- Verhindert dass "ausgetretene" Mitglieder weiterhin als aktive Gildenmitglieder angezeigt werden

### Guild.lua — Aufräumen
- `LEAVE_DEATH_WINDOW`-Konstante (300s) entfernt (nicht mehr benötigt)

---

## Version 8.10.9 — "Guild.lua: Re-Join Member Crash Fix"

### Guild.lua — CommitSnapshot() Boolean-Guard
- `guildData.members[key]` kann `true` (boolean) zurückgeben wenn ein Spieler mit gleichem Namen erneut der Gilde beitritt
- `or {}` reicht nicht als Guard da `true or {}` → `true` ergibt (truthy bypass)
- Fix: `type(existing) ~= "table"` Prüfung ersetzt `or {}` → verhindert Index-Fehler auf boolean
- Behebt: `attempt to index local 'existing' (a boolean value)` bei Roster-Scan

---

## Version 8.10.2 — "Death Popup: Icon-Rahmen & Spell-Label Fix"

### UI.lua — CreateOverlay(): Icon-Rahmen ersetzt
- `UI-Quickslot2` (hässlicher Bag-Slot-Look) durch **4 dünne 1px Gold-Linien** ersetzt
- Sieht aus wie ein eleganter, schlanker Rahmen statt einem Inventar-Slot
- Wert-Texte jetzt explizit weiß (`SetTextColor(1,1,1)`) für maximalen Kontrast

### UI.lua — "Fähigkeit:"-Label-Bug behoben
- `makeInfoRow` gibt jetzt **lbl + val** zurück → `o.spellLabel` gespeichert
- `spellLabel` wird mit `spellText` zusammen ein-/ausgeblendet
- Kein leeres "Fähigkeit:" Label mehr wenn kein Todesfähigkeits-Wert vorhanden
- `spellLabel` auch in revealFade-Choreographie eingebunden (erscheint bei 1.10s wenn vorhanden)

---

## Version 8.10.1 — "Death Popup: Lesbarkeits-Feinschliff"

### UI.lua — CreateOverlay(): Schriftfarben & Abstände korrigiert

| Element | Alt | Neu |
|---|---|---|
| Label-Farbe ("Getötet von:" etc.) | `0.75, 0.60, 0.20` (zu dunkel) | `0.96, 0.83, 0.36` (helles Gold) |
| Label-Schriftgröße | 10pt | 11pt |
| classText ("Stufe X Klasse") | 13pt OUTLINE | **14pt THICKOUTLINE** |
| classText-Farbe | `r*1.05` | `r+0.15` (gleichmäßig aufgehellt) |
| Zeilenabstand Details-Rows | 22px | **26px** (kein Überlappen) |
| SEP2-Offset | INFO_Y−82 | INFO_Y−96 |
| "~ Letzte Worte ~"-Farbe | `0.65, 0.50, 0.18` | `0.90, 0.76, 0.30` |
| lastWordsText | 14pt, kein Height-Limit | **15pt, max 42px Höhe** (2 Zeilen) |
| Footer levelText | 12pt OUTLINE, `0.85, 0.72, 0.35` | **13pt THICKOUTLINE, helles Gold** |

### Overlap-Fix
- `lastWordsText:SetHeight(42)` — begrenzt auf 2 Zeilen, verhindert Überlappen mit Footer

---

## Version 8.10.0 — "Death Popup: Vertikale Karte (Forschungs-basiertes Redesign)"

### UI.lua — `CreateOverlay()` komplett neu (vertikale Karte)
- Layout von Tabellen-Design auf saubere **vertikale Karte** umgestellt (Branchen-Standard: HardcoreAlerts, DeathLog, DeathNotificationLib)
- **BLOCK 1 Header:** Klassen-Icon 68×68 px links + Name 26pt Morpheus THICKOUTLINE (Klassenfarbe) + Klasse/Level 13pt rechts
- **BLOCK 2 Details:** 4 Zeilen — Killer, Fähigkeit, Zone, Uhrzeit; je 10pt Gold-Label + 14pt Weiß-Wert; `SetWordWrap(false)` verhindert Overflow
- **BLOCK 3 Letzte Worte:** Dynamischer Block mit "~ Letzte Worte ~" Header + 14pt `SetWordWrap(true)`; komplett ausgeblendet wenn keine letzten Worte vorhanden
- **BLOCK 4 Footer:** Allianz/Horde-Icons 38×38 px + Level/Klasse-Text zentriert
- Goldene Separator-Linien (1px, Goldtint) zwischen allen Blöcken
- Subtiler Klassen-Farbgradient (ADD-Blend) als Hintergrundakzent
- Scale-Minimum: `0.50` (bleibt bei 50% gut lesbar durch OUTLINE-Fonts)

### UI.lua — `DisplayOverlay()`: Alpha-Reveal-Timing korrigiert
- `spellText`: `SetAlpha(0)` vor `Show()` — kein sofortiges Aufblenden vor Reveal-Fade
- `levelText`: `SetAlpha(0)` gesetzt — korrektes Einblenden bei 1.25s
- `lwLabel` ("~ Letzte Worte ~"): `SetAlpha(0)` + `revealFade(1.45s)` — fließender Übergang

### Reveal-Choreographie
| Zeit | Element |
|------|---------|
| 0.00–0.80s | Overlay fade-in (DeathCinematic) |
| 0.92s | Name TypewriterText startet |
| 1.00s | classText · killerText · timestampText · zoneText |
| 1.10s | spellText (wenn Todesfähigkeit bekannt) |
| 1.25s | levelText |
| 1.45s | lwLabel "~ Letzte Worte ~" |
| 1.60s | lastWordsText TypewriterText |

---

## Version 8.8.1 — "Death Popup: Scale-Fix & Layout-Overhaul"

### UI.lua — Scale-Minimum erzwungen
- `overlayScale` wird beim Laden und bei jedem Anzeigen auf `math.max(0.85, ...)` geclampt
- Drag-Scale Minimum angehoben: `0.5` → `0.85` (Popup bleibt immer lesbar)
- Gespeicherter Wert `0.789` wird automatisch auf `0.85` korrigiert

### UI.lua — Layout-Redesign (volle Innenfläche genutzt)
| Element | Alt | Neu |
|---|---|---|
| classIcon | 80×80 px | **100×100 px** |
| iconBacking | 84×84 px | **108×108 px** |
| iconBorder | 90×90 px | **116×116 px** |
| iconGlow | 120×120 px | **140×140 px** |
| nameText | MORPHEUS 27pt | **MORPHEUS 34pt** |
| nameY offset | CTY−166 | **CTY−148** (enger am Icon) |
| classText | FRIZQT 17pt (Kette) | **FRIZQT 14pt** |
| zoneText | FRIZQT 15pt (Kette) | **FRIZQT 13pt** |
| killerText | FRIZQT 15pt (Kette, overflow!) | **FRIZQT 13pt, BOTTOM-Anker** |
| lastWordsText | FRIZQT 13pt | **FRIZQT 13pt, BOTTOM-Anker** |

### UI.lua — Mutual Exclusion: killerText vs. lastWordsText
- Wenn `hasLastWords = true` → `killerText` wird ausgeblendet (Platzmangel)
- killerText und lastWordsText beide BOTTOM-verankert → kein Overflow aus Innenfeld

---

## Version 8.7.1 — "Buchseiten-Übergang: Balken entfernt, Bloom eingebaut"

### AnimFX.lua — `ShimmerSweep` komplett neu
| | Alt | Neu |
|---|---|---|
| Typ | Solider 36px-Balken (`WHITE8x8`) | 2 radiale Bloom-Texturen (`starburst` + `ping4`) |
| Bewegung | Gleitet von links nach rechts | Expandiert aus der Mitte heraus |
| Blend-Alpha | 0.85 (sehr auffällig) | 0.22 / 0.15 (subtil, elegant) |
| Größe | 36px breit, Framehöhe | 18%→110% / 30%→95% der Framebreite |
| Timing | Gleichförmig | Ease-out (`1-(1-t)²`), Starburst 70ms versetzt |

### UI.lua — Seitenübergang
- `GlowRing`-Größe nach Seitenwechsel: 80% → **60%** der Seitenbreite (weniger aufdringlich)
- `ShimmerSweep`-Dauer: 0.65s → **0.55s** (schneller, flüssiger)

---

## Version 8.7.0 — "GUILD DEATH LOG FRAME" — Neues Todes-Popup Artwork

### Neues Design — CreateOverlay() komplett ersetzt
| Änderung | Alt | Neu |
|---|---|---|
| Frame-Größe | 520×340 px | **660×460 px** |
| Hintergrund-Textur | `Textures/DeathPopup.tga` | **`Textures/GDLDeathFrame_New.png`** |
| Kopfbereich | Einfacher Artwork-Rahmen | **WoW-Logo + "GUILD DEATH LOG" Inschrift** |
| Eck-Dekoration | Keine | **Allianz-/Horde-Schädel + Embleme** |
| Innenbereich | Pergament-Look | **Dunkler Stein-Textur** |
| Icon-Rahmen | Einfaches UI-Quickslot | **UI-Quickslot2 mit Gold-Tint** |
| Content-Breite | 460px | **544px** (CW = W - CX×2) |
| Name-Font | MORPHEUS 26pt | **MORPHEUS 27pt** |
| Divider | 1px, gold 0.68/0.52/0.13 | **2px, gold 0.75/0.58/0.15** |

### AnimFX.lua — SetAlpha Floating-Point Guard
- `runes[i]:SetAlpha(alpha)` → `runes[i]:SetAlpha(math_max(0, alpha))`
  - Verhindert `-0.000000` Fehler bei `prog ≈ 1.0` durch IEEE 754 Floating-Point-Rundung
  - Betraf `AnimFX.RuneCircle` / ähnliche Ticker wenn `el` minimal `dur` überschritt

### Textures/
- `GDLDeathFrame_New.png` hinzugefügt (WoW "Guild Death Log" Frame-Artwork, 1:1 Größe)

---

## Version 8.6.0 — "BUGFIX: GuildRoster + AnimFX API Guards"

### GuildRoster.lua — Classic Era API-Kompatibilität
- `SendAddonMessage` direktaufrufe durch lokalen `SendMsg()`-Wrapper ersetzt
  - Unterstützt jetzt beide APIs: `C_ChatInfo.SendAddonMessage` (1.15.x+) und globales `SendAddonMessage` (ältere Classic-Clients)
- `GDL:GetClassIdFromLocale()` (nicht existent) ersetzt durch lokales `CLASS_ID_MAP[]`-Lookup
  - Enthält alle Klassen: Warrior–DemonHunter mit englischen Keys
- `GDL:GetSpecName()` (nicht existent) ersetzt durch lokale `GetCurrentSpec()`-Funktion
  - Nutzt `GetSpecialization`/`GetSpecializationInfo` wenn vorhanden, sonst leerer String
- `LE_PARTY_CATEGORY_HOME` (nil in Classic) ersetzt durch `IsInGroup()` ohne Argument
- `RegisterAddonMessagePrefix`-Guard war bereits korrekt (kein Bug dort)

### UI.lua — AnimFX Globale Referenz gefixt
- `HideBook()`: `AnimFX.ScreenFlash(...)` → `FX.ScreenFlash(...)` (nutzt jetzt korrekt die lokale `FX`-Variable)

---

## Version 8.4.0 — "CINEMATIC DEATH OVERHAUL" — Das ultimative Immersions-Arsenal

### Philosophie
Jeder Gildentod ist jetzt ein cineastisches Ereignis. Kein simples Popup mehr — eine vollständige Sequenz aus Dunkelheit, Glocken, Explosionen, aufsteigender Seele und kreisenden Runen.

### AnimFX.lua — 8 neue epische Funktionen

| Funktion | Beschreibung |
|---|---|
| `SoulRise(parent, r, g, b)` | 18 Seelen-Partikel steigen langsam aus dem Popup auf. Organisches Wobble, Ping4/Star4/Starburst Texturen, ADD-Blend. Returns Handle. |
| `ArcaneOrbit(parent, r, g, b)` | 5 Runen kreisen auf elliptischen Bahnen um das Popup (unterschiedl. Radien 78–175px, gemischte Richtungen, Puls-Alpha). Returns Handle. |
| `RuneExplosion(parent, r, g, b, count)` | N Runen explodieren radial aus dem Zentrum (Star4/Starburst, 200px/s → dezeleriert, Scale wächst, Alpha fällt). One-shot. |
| `PulseRings(parent, r, g, b, count, interval)` | N GlowRings feuern in schneller Sequenz (0.14s Abstand). Jeder Ring wird größer. |
| `ScreenBlackout(fadeDur, maxAlpha, holdDur, onPeak)` | Verdunkelt den Bildschirm. fadeDur Ein/Aus, holdDur Haltezeit, onPeak Callback. |
| `StartOverlayAmbience(overlay, r, g, b)` | Startet SoulRise + ArcaneOrbit als persistente Ambience. Returns Handle-Pair. |
| `StopOverlayAmbience(handles)` | Stoppt beide Ambience-Handles sauber. |
| `DeathCinematic(overlay, r, g, b)` | **Master-Orchestrator.** 12-stufige Kino-Sequenz: Blackout → Vignette → Glocke → Blutflash → ScrollUnfurl → Runen-Explosion × 2 → PulseRings → Shake → GlowRing → Shimmer → ParticleBurst × 3 → SoulRise + ArcaneOrbit. |

### UI.lua — `DisplayOverlay()` komplett umgebaut

| Änderung | Detail |
|---|---|
| `AnimFX.DeathCinematic(o, r, g, b)` | Ersetzt alle manuellen Effekt-Aufrufe (BellTolls, CinematicBars, DeathWail, introAnim, ScaleLerp) |
| TypewriterText-Effekt | Name erscheint nach 0.92s Zeichen-für-Zeichen (18 CPS) |
| Ambience-Cleanup | `StopOverlayAmbience` bei Schließen + neuem Tod |
| Hide-Timer | 10s → 12s (mehr Zeit für den Tod zu trauern) |

### Death Cinematic Zeitplan

```
t=0.00  ScreenBlackout (0.72 alpha) + Vignette (3.4s)
t=0.05  BellTolls: Glocke 2× + Klassenflash + Horror-Cut
t=0.30  Blutroter ScreenFlash (0.68 alpha)
t=0.44  Popup ScrollUnfurl (Pergament-Entrollen)
t=0.50  RuneExplosion × 8 (Klassenfarbe)
t=0.55  PulseRings × 3 (0.15s Abstand)
t=0.64  ShakeFrame (12px, 0.52s)
t=0.72  RuneExplosion × 6 (Gold)
t=0.75  GlowRing massiv (118% Framegröße)
t=0.82  ShimmerSweep (Gold)
t=0.88  ParticleBurst × 3 (Klasse + Gold + Weiß, 30+16+12 Partikel)
t=0.92  TypewriterText: Name enthüllt (18 CPS)
t=1.10  SoulRise + ArcaneOrbit starten (persistente Ambience)
t=1.25  Nachhall ParticleBurst × 20 (gedämpft)
t=12.0  Outro: FadeOut 1.5s → Ambience stop → CinematicBars aus
```

---



### Bugfixes
- **GuildRoster.lua** `Initialize()`: `RegisterAddonMessagePrefix` war in Classic Era 1.x nicht vorhanden → Fehler `attempt to call global 'RegisterAddonMessagePrefix' (a nil value)`. Fix: Dreistufiger Guard — `C_ChatInfo.RegisterAddonMessagePrefix` (Retail) → globales `RegisterAddonMessagePrefix` (Wrath+) → kein Call nötig (Classic Era 1.x empfängt CHAT_MSG_ADDON ohnehin).

### Verbesserungen
- **UI.lua** `CreateOverlay()`: Todes-Popup nutzt jetzt `Interface\AddOns\GuildDeathLog\Textures\DeathPopup` als nativen Artwork-Hintergrund statt programmatisch gezeichneter Borders. Frame-Größe: 480×295 → **520×340 px** für mehr Luft. Alle Textpositionen neu ausgerichtet. Klassen-ADD-Gradient bleibt dynamisch erhalten.

---

## Version 8.3.0 - "DAS LEBENDIGE GRIMOIRE" — Immersions-Arsenal

### Philosophie
Das Grimoire lebt. Jede Interaktion mit dem Addon soll sich anfühlen wie das Berühren eines uralten, magischen Buches.

### AnimFX.lua — 9 neue Immersions-Funktionen

| Funktion | Beschreibung |
|---|---|
| `EmberAmbience(frame, count, r, g, b)` | 10 Glut-Funken drift en langsam am Rand des Buches aufwärts — klassenfarbig. Einzel-Ticker für alle Partikel (kein GC-Spike). |
| `CandleFlicker(frame, offX, offY)` | Organisch unregelmäßiges Kerzenleuchten (80px Starburst + 26px Ping4). Lerp-basierte Alpha-Fluktuation (6-11ms Intervalle). |
| `BreathGlow(frame, r, g, b, period)` | Persistentes atmendes Außenleuchten via AnimationGroup BOUNCE (3.8s Periode, 0.40 maxAlpha). |
| `CinematicBars(show, dur)` | Letterbox-Balken (oben + unten, 60px) für Tod-Sequenz. Lazy-Init (nur ein globales Frame). IN³/OUT² Easing. |
| `TypewriterText(fs, text, cps, onDone)` | Schreibt Text Zeichen-für-Zeichen (Standard 40 CPS). Callback onDone. Ticker via :Hide() abbrechbar. |
| `ScrollUnfurl(frame, dur)` | Scale Y 0.04→1.0 von oben (OUT-Easing, 0.38s) + Alpha-Fade — Pergament-Entrolleffekt. |
| `PageTurn(contentFrame, populate, dir, dur)` | Slide + Alpha out (dir×slide), populate aufrufen, dann rein von Gegenseite. |
| `BellTolls(r, g, b)` | Vignette 2.4s + klassen-Flash + weißer Horror-Cut + PlaySound(878) zweimal (0.0s + 0.88s). |
| `DustMotes(frame, count, dur)` | 8 Staubpartikel für Kapitelwechsel (1.8s, einmalig, auto-cleanup). |

### UI.lua — Lebendige Atmosphäre

**`ShowBook()`** — Startet nach 0.12s:
- `EmberAmbience(f, 10)` — 10 goldene Funken
- `CandleFlicker(f, -390, 0)` + `CandleFlicker(f, +390, 0)` — links und rechts
- `BreathGlow(f, 0.92, 0.72, 0.22, 4.0, 0.35)` — goldenes Atemleuchten

**`HideBook()`** — Stoppt alle Handles sauber (`.active=false`, `:Hide()`, `:Stop()`).

**`HandleChapterClick()`** — `DustMotes(f, 7, 1.5)` bei jedem Kapitelwechsel.

**`DisplayOverlay()`** — Tod-Cinematic-Sequenz:
1. `BellTolls(r, g, b)` — Glocke + Vignette + klassenfarbener Flash
2. `CinematicBars(true, 0.50)` — Letterbox einblenden
3. `DeathWail()` nach 0.08s (bereits vorhanden)
4. Nach 10s outroAnim: `CinematicBars(false, 0.55)` — Letterbox ausblenden

### MinimapButton.lua — "Der Todesherold" (komplettes Redesign)

- **Icon**: `Spell_Shadow_DeathPact` (mystischer Totenkopf statt Buch)
- **Border**: Rot getönt `(0.88, 0.45, 0.42)` statt Gold
- **3 Orbit-Runen**: Goldene `ping4`-Funken, 19px Radius, 0.85 rad/s Rotation (via single OnUpdate)
- **Todes-Badge**: 15px roter Kreis oben-rechts mit weißer Zahl (auto-hidden wenn 0)
- **Atem-Leuchten**: Starburst ADD-Blend, BOUNCE 2.2s, `(0.80, 0.14, 0.08)` rot
- **Glow-Ring bei Tod**: Pulsiert 4-phasig (rot, ADD, 0.96s gesamt)
- **`Pulse()`**: Glow-Ring + Badge-Update + Orbit-Runen-Flash (1s)
- **Hover-Panel**: Dunkel `(0.04, 0.02, 0.01, 0.97)` + rote Borderfarbe + MORPHEUS-Header

---

## Version 8.2.1 - BUGFIXES

### Bugfixes
- **UI.lua** `BuildCalendarToastFrame`: Font-Pfade für `badge`, `titleStr`, `descStr`, `hint` von einfachem Backslash (`"Fonts\FRIZQT__.TTF"`) auf doppelten (`"Fonts\\FRIZQT__.TTF"`) korrigiert — Lua interpretierte `\F` als `F` → `SetFont` scheiterte stumm → `SetText` warf `Font not set` Fehler (Lua-Taint fix)
- **AnimFX.lua** `Vignette`: `math_max(0, ...)` Guard in der fallDur-Phase hinzugefügt — verhindert minimal-negativen Alpha-Wert durch Floating-Point-Präzision bei `SetAlpha()`

---

## Version 8.2.0 - CUSTOM DEATH POPUP DESIGN & GUILD ROSTER SYNC

### Neues Design: Todes-Popup (Death Overlay)

**Vollständig neu kodiertes cinematic Design (kein Bild benötigt):**
- 480×295 px statt 460×307 px — etwas breiter, kompakter
- **Dunkler Hintergrund** `(0.028, 0.013, 0.004, 0.97)` — fast schwarz mit warmem Ton
- **Dynamische Klassenfarb-Borders**: Alle 4 Rahmenseiten (3px) wechseln je nach gestorbener Klasse
- **Inneres ADD-Glow-Rechteck** — minimale Klassen-Ambient-Tönung
- **Oberer Klassen-Gradient** — 90px hohes `ADD`-Blend-Overlay in Klassenfarbe (subtil)
- **Header-Leiste**: 23px — `GILDEN TOD` links, `Das Buch der Gefallenen` rechts, Trennlinie
- **X-Schliessen-Knopf** oben rechts (rot, 48% Alpha, 100% bei Hover)
- **Klassen-Icon 82×82** mit:
  - 110×110 Glow-Ring (`star4`, ADD-Blend, pulsiert mit sin-Kurve, klassenfarb-gefärbt)
  - 88×88 Backing-Rechteck (klassenfarb-getönt)
  - Skull-Icon (22×22) direkt über dem Icon
  - Vier dekorative Eck-Punkte (5×5, gold)
- **Name**: MORPHEUS 24pt OUTLINE, zentriert, 30px Backing-Streifen
- **Trennlinie** unter dem Namen (klassenfarb-gesetzt)
- **Info-Sektion**: Level+Klasse (13pt, `0.9,0.8,0.6`), Zone (11pt, hell-blau), Timestamp (9pt), Killer (11pt, rot)
- **Letzte-Worte-Streifen**: 28px am Boden, eigene Trennlinie, warmbraune Schrift
- Drag & Shift+Drag-to-Scale vollständig erhalten

### Neues Modul: `Modules/GuildRoster.lua` — Alt/Twink/Rolle Sync

**Pattern: GRM (Guild Roster Manager) + Altoholic**
- Addon-Prefix `GDLRoster`, Channel `GUILD` + `PARTY` als Fallback
- Jeder Spieler broadcastet beim Login nach 10s eigene Daten:
  - Name, Level, ClassId, Spezialisierung, Alts-Liste, Rolle, Notiz
- Andere Spieler empfangen und speichern in `GuildDeathLogDB.roster`
- `REQ`-Broadcast nach 6s: andere antworten mit ihren Daten
- Partieller Broadcast nach Alt/Rolle-Änderung (0.5s Verzögerung)

**Slash-Commands:**
```
/gdl alt add Charname     → Alt zu deinem Charakter hinzufügen
/gdl alt remove Charname  → Alt entfernen
/gdl alt list             → Alle deine Alts anzeigen
/gdl alt clear            → Alle Alts löschen
/gdl role Main Tank       → Gilden-Rolle setzen (max 30 Zeichen)
/gdl note Mein Text       → Persönliche Notiz setzen (max 50 Zeichen)
/gdl roster               → Hilfe + eigene Alts anzeigen
```

**Roster-Sektion im Professions-Tab:**
- `BuildRosterSection()` — blauer Kategorie-Header (wie Meilensteine)
- Zeilen im MilRow-Stil: 38px (ohne Alts) / 56px (mit Alts)
- Icon-Backing klassenfarb-getönt, Name gold, Level+Spec warmbraun
- Rolle rechts in hell-blau
- Alts in der Bodenleiste grau mit `Alts:` Prefix

---

## Version 8.1.0 - CHRONIK DER GEFALLENEN: MEILENSTEIN-REDESIGN

### Redesign: Chronik der Gefallenen

**Tag-Trennbalken (`CreateDaySeparator`) — neu wie `RenderAchCategoryHeader`:**
- 30px Höhe (vorher 32px mit Morpheus-Schrift)
- Warmes Amber-Hintergrundtint `(0.32, 0.18, 0.04)` wie Meilenstein-Kategorie-Header
- Shimmer-Overlay oben (ADD Blend)
- Goldene 2px Toplinie + 1px Bottomlinie
- 3px linker Akzentbalken `(0.90, 0.68, 0.16)` — identisch mit RenderAchCategoryHeader
- Skull-Icon (20×20) + Datum in `|cffF0C060` mit FRIZQT 10pt (vorher MORPHEUS 11pt)
- Todes-Anzahl rechts: farbkodiert (rot ≥5, gold ≥2, grau =1)

**Eintragszeilen (`CreateDeathEntry`) — neu wie `RenderMilRow`:**
- 44px / 62px (mit Letzten Worten) — vorher 60px / 78px
- Warmes klassen-getöntes Hintergrundtint `(col*0.14)` wie MilRow
- Shimmer-Zone oben (ADD Blend, wie MilRow)
- **Icon-Layout**: 28×28 Klassen-Icon-Backing + 24×24 Icon — exakt wie MilRow (vorher 38×38)
- **Name**: `|cffF0C060` Gold 10pt (wie MilRow nameStr unlocked) — vorher helle Klassenfarbe 12pt
- **Info-Zeile 1**: Level + Klasse in warmem Braun `(0.68, 0.55, 0.32)` — wie MilRow descStr
- **Info-Zeile 2**: Zone (teal) + Töter (rot) — 8pt wie MilRow
- **Datum rechts**: zweistellig `dd.mm.yy` + Uhrzeit darunter (wie MilRow statusStr) — kein großes Badge mehr
- **Letzte Worte**: Bodenstreifen 20px in warmem Braun — konsistent mit MilRow
- **Hover**: Hintergrund-Aufhellung + Icon-Backing brightening — wie MilRow OnEnter/OnLeave
- Untertrennlinie 316×1px wie MilRow

---

## Version 8.0.0 - CINEMATIC ANIMATION OVERHAUL - "ABSOLUTE BOMBE"

### Neue Features

**AnimFX.lua - Zentrales Animations-Effekte-Modul (NEU):**
- `AnimFX.ScreenFlash(r,g,b,dur,alpha)` — Vollbild-Farb-Flash mit quadratischem Fade-out
- `AnimFX.Vignette(dur,alpha)` — Dramatisches Abdunkeln der Bildschirmränder (cinematic)
- `AnimFX.ParticleBurst(x,y,count,r,g,b,spread,life)` — Partikel-Explosion mit Physik (Gravitation, Rotation)
- `AnimFX.ShakeFrame(frame,intensity,dur)` — Frame-Shake via dediziertem Ticker (kein OnUpdate-Konflikt)
- `AnimFX.GlowRing(parent,r,g,b,size,dur)` — Expandierender Glow-Ring mit eased Scale
- `AnimFX.ShimmerSweep(frame,r,g,b,dur)` — Licht-Streif zieht von links nach rechts
- `AnimFX.IconPunch(frame,scale,dur)` — Spring-Bounce für Icons (Overshoot-Effekt)
- `AnimFX.SparkleTrail(frame,r,g,b,dur)` — Drei sequentielle Glitzer-Wellen sweepen horizontal
- `AnimFX.RuneCircle(parent,r,g,b,radius,dur)` — Vier Rune-Texturen orbiten den Frame
- `AnimFX.DeathWail(overlay,r,g,b)` — Volle Todessequenz: Vignette + Klassen-Flash + Weißschnitt + GlowRing + RuneOrbit + PartikelExplosion + Shake + Shimmer + Zweite Welle
- `AnimFX.MilestoneFanfare(toast,r,g,b)` — Gold-Fanfare: Flash + GlowRing + RuneOrbit + Partikel + SparkleTrail + Shimmer
- `AnimFX.AchievementFanfare(toast,r,g,b)` — Achievement-Fanfare in Grün/Gold
- `AnimFX.CalendarBell(toast,isDelete)` — Kalender-Toast FX in Blau (neu) / Rot (gelöscht)
- `AnimFX.BookOpenEffect(bookFrame)` — Staub-Partikel + Amber-Flash + Shimmer + RuneOrbit beim Buchöffnen
- Partikel-Pool: 64 wiederverwendbare Frames (KEINE Memory-Leaks, kein GC-Stress)
- Alle Effekte: `BlendMode("ADD")` für leuchtende WoW-native Optik
- Taint-sicher: keine geschützten Frames modifiziert

**Death-Overlay: Cinematic DeathWail-Sequenz:**
- Beim Öffnen des Todesframes wird `AnimFX.DeathWail` mit der Klassen-Farbe aufgerufen
- Vignette verdunkelt die Welt dramatisch für 2.8 Sekunden
- Klassen-farbiger Blitz, weißer Schnitt, Partikelexplosion, Shake, zweite Partikelwelle
- Intro-Scale von 0.85→1.0 für dramatischeren Eintritt (vorher 0.93→1.0)

**Milestones-Toast: Gold-Fanfare beim Unlock:**
- Am Ende der Slide-In-Animation wird `AnimFX.MilestoneFanfare` ausgelöst
- Goldener Bildschirm-Flash + expandierender Glow-Ring + Rune-Orbit + Partikel-Burst + Shimmer-Sweep

**Achievement-Toast: Grün/Gold-Fanfare:**
- Nach dem Slide-In: grüner Flash für Gilden-Achievements, goldener Flash für persönliche
- GlowRing + Partikel-Explosion + Shimmer-Sweep

**Calendar-Toast: Push-Bell-Effekt:**
- 0.28s nach dem Slide-In: blaue Partikel (neues Event) oder rote Partikel (gelöscht)
- GlowRing + Partikel-Burst + (bei neuem Event) Shimmer-Sweep

**Book-Öffnen: Staubige Pergament-Atmosphäre:**
- 0.12s nach dem Öffnen: goldene Staub-Partikel steigen auf
- Amber-Screen-Flash + Shimmer-Sweep durch das Buch + Rune-Orbit

### Technische Änderungen
- `Modules/AnimFX.lua` vor `Modules/UI.lua` in `GuildDeathLog.toc` eingetragen
- Version 8.0.0 (Major-Bump für vollständigen Animations-Overhaul)

---

## Version 7.16.0 - LIVE MAP TRACKING, KALENDER DELETE-PUSH & LESBARKEITS-FIX

### Neue Features

**Nameplates: GDL-Addon-Titel über Spielernamen (Titles.lua) — NUR Classic 1.15.8:**
- Addon-Titel anderer Spieler erscheinen direkt unter ihrem Namen auf der Nameplate
- Format: goldener Text `[Titel]` in `|cffF0C060` direkt unter dem Namens-FontString
- Aktivierung: IMMER aktiv für alle Spieler mit dem Addon (kein Supporter-Code nötig zum Anzeigen)
- Senden des eigenen Titels: Supporter-Feature (nur Inhaber eines Codes broadcasten ihren Titel)
- Broadcast-Kanäle: GUILD + PARTY + RAID (auch nicht-Gildenmitglieder in Gruppe sehen Titel)
- Request bei Login: automatische Anfrage nach 8s damit bereits gesendete Titel empfangen werden
- Guild-Beschränkung entfernt: jeder Spieler mit dem Addon wird angezeigt (nicht nur Gildenmitglieder)
- `CleanupNonMembers`: bereinigt nun Guild-Ex-Mitglieder UND behält Daten für aktive Gruppen-Member
- `IsForbidden()` Guard: verhindert Lua-Fehler bei geschützten Nameplate-Frames im Kampf
- **Bug fix**: `RefreshAllNameplateTitles` hatte `GetNamePlateForUnit and nil` (immer nil) → korrekte Unit-Token-Suche in `for i=1,40` loop
- Classic Era 1.15.8: `CompactUnitFrame_UpdateName` hook + `NAME_PLATE_UNIT_ADDED` Event (beide seit 1.13.2 verfügbar) ✓

**Weltkarte: Live-Positionstracking von Gildenmitgliedern (MapMarkers.lua):**
- Alle Spieler mit dem Addon senden alle 8s ihre Position via Addon-Kanal `GDLPos` an die Gilde
- Weltkarte zeigt klassen-farbige Marker für jeden Gildenmitglieder auf der aktuellen Karte
- Marker: Klassen-Icon (16×16) + farbiger Glow-Ring + Puls-Animation (ADD Blend, schlägt alle 2s)
- Name-Label über jedem Live-Marker (FRIZQT 7pt, OUTLINE)
- Tooltip: `[Live] Name` in Klassenfarbe + Koordinaten + "vor Xs aktualisiert"
- Minimap: Klassen-farbige Punkte für Gildenmitglieder auf gleicher Karte (3s Update-Rhythmus)
- Marker verschwinden automatisch nach 30s ohne Update (Spieler offline/Kartenwechsel)
- Classic 1.15.8 + TBC 2.5.5 kompatibel (verwendet `C_Map.GetBestMapForUnit` + `C_Map.GetPlayerMapPosition`)
- Todes-Marker (Totenkopf) und Live-Marker koexistieren auf der Weltkarte

**Kalender: Push-Benachrichtigung bei Event-Löschung:**
- `BroadcastEvent DELETE` Bug gefixt: Serialisierter Payload statt reiner Event-ID wurde gesendet → Event-IDs wurden nicht korrekt verglichen
- DELETE jetzt: `"DELETE|eventId"` (korrektes Format) → Empfänger findet Event zuverlässig
- Toast-Benachrichtigung für andere Spieler wenn jemand ein Event löscht (rote Akzentfarbe)
- Toast für den Löschenden selbst mit `[Event geloescht]` Badge
- Lösch-Toast: Roter Topbar (`0.55, 0.12, 0.04`) + rotes Linksakkzent + desaturiertes Icon
- CREATE-Toast: Weiterhin blau/teal (unverändert)

### Visuelle Fixes

**Berufe der Gilde – Textfarbe auf Pergament-Hintergrund:**
- Berufsname: `|cff684820` → `|cff3A2008` (dunkleres Braun, klar lesbar)
- Level-Text: `|cff684820` → `|cff3A2008`
- "Berufe unbekannt": `|cff583020` → `|cff705038` (sichtbarer)
- Trennzeile "Ohne Addon": `|cff785030` → `|cff3A2008`
- Zusammenfassungszeile: `|cff684820` → `|cff3A2008`

**Abenteurer der Gilde (Gildenkarte) – Textfarbe verbessert:**
- Online-Count Badge: `|cff006600` → `|cff1A7A1A` (satteres Grün, kein Ausbluten)
- Offline-Count: `|cff583830` → `|cff5A3818` (harmonischer)
- Gesamt: `|cff785030` → `|cff3A2008`
- Online-Header: `|cff006600` → `|cff1A7A1A`
- Mitglieder-Rows Level: `|cff684820` → `|cff3A2008`
- Zone: `|cff684820` → `|cff264870` (dunkles Marineblau – kontrastiert perfekt gegen Pergament)
- Offline-Header: `|cff583830` → `|cff5A3818`
- Offline-Namen: `|cff583020` → `|cff4A3020`
- Subtitle: `|cff583830` → `|cff3A2008`

---

## Version 7.15.0 - UI PREMIUM REFRESH: Lesbarkeit, Milestone-Stil & Gilden-Push

### Optik & Lesbarkeit

**Titel & Ränge (Kapitel VII) – Milestone-Style komplett überarbeitet:**
- Drei Kategorie-Header im `RenderAchCategoryHeader`-Stil: "Aktiver Titel", "Freigeschaltete Titel", "Gesperrte Titel"
- Aktiver Titel erhält goldene Hervorhebungszeile mit eigenem Bereich
- Freigeschaltete Titel: klickbare Rows mit Icon, Name, Beschreibung, Status-Badge, Hover-Tooltip & Highlight
- Gesperrte Titel: desaturiert, ausgegraut, mit Tooltip
- Konsistente Farbsprache: Gold für aktiv/freigeschaltet, Grau für gesperrt

**Gilden-Statistiken (Kapitel IX) – Schrift deutlich aufgehellt:**
- Labels: `|cff785030` → `|cffD4AA5E` (warmes Gold, deutlich lesbarer)
- Werte: `|cff684820` → `|cffE8C870` (helles Gold)
- Sub-Infos: `|cff583020` → `|cffB8A880` (warmes Creme)

**Chronik der Gefallenen – Komplett-Redesign v2 (Premium Layout):**
- Eintrags-Rows: 60px (Standard) / 78px (mit Letzten Worten) — saubere Proportionen
- 4px linker Klassen-Akzentbalken (vivid, α 1.0) + 20px ADD-Bloom Glow (breiter als vorher)
- Klassen-getönte Backgrounds: `col * 0.09 / 0.055 / 0.015` α 0.60 (kräftiger, besser lesbar)
- **FIX: Separator-Bug behoben** — `\xC2\xB7` (Kästchen im Spiel) ersetzt durch zwei klar getrennte Info-Zeilen
- Info-Zeile 1: `Lv.X  Klasse` in warmem Grau (`0.78, 0.68, 0.54`) — klar lesbar
- Info-Zeile 2: Zone in `|cff5AC8D8` (Teal) + Killer in `|cffFF7A68` (Rot) mit ` - ` Trenner
- Datum: Pill-Badge mit sichtbarem Dark-Background (`0.08, 0.055, 0.015, 0.82`) + klassen-getönter Top-Border
- Datum-Farbe: `|cffD0B878` (helles Gold), FRIZQT 8pt, RIGHT-aligned
- Klassen-Icon: 32×32 in 38×38 Backing-Square + Farb-Ring (zentriert, professioneller Rahmen)
- Name: FRIZQT 12pt (von 11pt), `col * 1.40 + 0.10` — markanter, präsenter
- Letzte Worte: 20px Strip unten + 1px Klassen-Divider-Linie + `|cffCCB490` Cream-Farbe, FRIZQT 9pt
- Hover: bg brightening auf 0.75, iconBorder-Ring leuchtet stärker
- Tooltip: Zone in `0.38, 0.80, 0.88` (kräftiges Teal), Letzte Worte `|cffCCB490`
- Day-Separator: 3px linker Gold-Akzentbalken, Count-Badge als Pill, Shimmer, MORPHEUS in `|cffF0C060`
- Admin-Delete-Button: BOTTOMRIGHT, α 0.18 → 1.0 on Hover (unverändert)

**Todeskarte (Death Overlay) – Text-Kontrast & Timestamp:**
- Zone/Killer/LastWords: alle Fonts erhalten `"OUTLINE"` Flag + Shadow-Color 100% schwarz
- Zone: Font 13 → 12 mit OUTLINE (knackige Lesbarkeit)
- Killer: Farbe 0.9,0.3,0.3 → 1.0,0.35,0.25 mit OUTLINE + Shadow
- Letzte Worte: Farbe 0.8,0.75,0.6 → 0.88,0.80,0.62 mit OUTLINE + Shadow
- **NEU: Timestamp-Zeile** – "Gefallen am TT.MM.JJJJ um HH:MM Uhr" in warmem Goldton (OUTLINE) zwischen Zone und Killer

### Neue Features

**Kalender – Gilden-Push-Notification:**
- Wenn ein Spieler ein Event erstellt → Toast-Notification mit Slide-In-Animation (blau/teal)
- Wenn ein Gildenmitglied ein neues Event anlegt (via Sync ADD) → Toast bei allen anderen Mitgliedern
- Toast zeigt: Event-Icon, Event-Name, Datum/Uhrzeit, Ersteller
- Klick auf Toast öffnet den Kalender direkt
- Auto-Hide nach 8 Sekunden mit Fade-Out-Animation
- Neue Funktion: `UI:ShowCalendarToast()`, `UI:BuildCalendarToastFrame()`, `UI:DisplayCalendarToast()`



### Feature: Modules/Milestones.lua — Expansion-basierte Meilenstein-Filterung

**Konzept:** Das Addon erkennt beim Laden automatisch ob es auf Classic 1.15.x
oder TBC 2.5.x läuft (via `Compat.lua` TOC-Version) und zeigt nur passende
Meilensteine an. Kein manuelles Umschalten nötig.

**Classic 1.15.x zeigt:**
- Level-Meilensteine 10–60 ("Level 60 – UNSTERBLICH!")
- Alle Classic-Dungeons & -Raids (RFC bis Naxx)
- Classic-Meta: `meta_immortal_veteran`, `meta_true_immortal`, `meta_godslayer`,
  `meta_perfectionist`, `meta_legend_azeroth`, `meta_pvp_master`, `meta_ultimate`
- Universelle Meilensteine (Kills, Playtime, Professions, PvP, Social)

**TBC 2.5.x zeigt:**
- Level-Meilensteine 10–60 (neutral: "Level 60") + Level 70 ("UNSTERBLICH!")
- Alle Classic-Dungeons & -Raids (weiterhin sichtbar, man kann sie machen)
- 15 neue Outland-Dungeon-Meilensteine (Ramparts bis Magister's Terrace)
- 8 neue TBC-Raid-Meilensteine (Karazhan bis Sunwell / Kil'jaeden)
- TBC-Meta: `meta_all_tbc_dungeons`, `meta_all_tbc_raids`, `meta_outland_legend`,
  `meta_immortal_vet_tbc`, `meta_true_immortal_tbc`, `meta_godslayer_tbc`
  (Illidan + Kil'jaeden), `meta_pvp_master_tbc`, `meta_ultimate_tbc`
- KEIN Classic-Level-60-Cap als "Endmeilenstein"

**Technisch:**
- `MILESTONE_DEFS_ALL` enthält alle Definitionen mit optionalem `expansion` Tag
- `TBC_MILESTONE_DEFS` enthält alle neuen TBC-Inhalte (alle mit `expansion = "tbc"`)
- `MILESTONE_DEFS` wird beim Laden einmalig aus gefilterten Listen gebaut
- Lokalisierung: deDE + enUS enthalten alle neuen TBC-Strings

### Feature: Modules/Achievements.lua — survivor_70 für TBC

- `survivor_70` "Wahrer Unsterblicher": Level 70 ohne zu sterben — nur aktiv wenn
  `addon._compat.isTBC` true ist (check gibt immer false in Classic)
- `survivorMap` in `CheckHCReset()` um Level 70 ergänzt

## Version 7.13.1 - UI-LESBARKEIT: Schrift fett/schattiert behoben

### Bugfix: Modules/UI.lua — OUTLINE und schwere Schatten entfernt

**Problem:** Fast alle FontStrings im Buch-UI verwendeten `"OUTLINE"` in `SetFont()`
was Text fett und schwer lesbar wirken ließ, dazu Shadow-Alpha-Werte bis 0.85
die auf dem hellen Pergament-Hintergrund die Schrift zusätzlich erschwerten.

**Fix:**
- `"OUTLINE"` aus allen `SetFont()`-Aufrufen im Buch-UI entfernt
  (Killstats-Rangliste, Errungenschaft-Status, Export-Buttons, Meilenstein-Fortschritt)
- Shadow-Alpha-Werte reduziert: >= 0.40 → 0.15, Werte 0.20–0.39 → 0.12
- **Ausnahmen (bewusst beibehalten):**
  - Tod-Overlay (`nameText`, `classText`, `scaleText`) — dunkler Hintergrund benötigt OUTLINE
  - Errungenschaft-/Meilenstein-Toast-Badges — dunkler Hintergrund benötigt OUTLINE
  - Tod-Overlay Schatten-Alpha 1.0 — für dramatischen Effekt auf dunklem Hintergrund
  - Delete-Button `x`-Label — funktionaler Minibutton, braucht OUTLINE für Sichtbarkeit

## Version 7.13.0 - CHARAKTER-ISOLATION: Errungenschaften & Meilensteine per Charakter

### KERN-BUGFIX: Achievements.lua — per-Charakter GUID-Speicherung

**Problem:** Errungenschaften wurden account-weit als Flat-Table gespeichert
(`GuildDeathLogDB.achievements[achievementId]`). Das bedeutete:
- Alle Chars auf dem Account teilten dieselben Errungenschaften
- Stirbt "Herbert" (HC), wird gelöscht, und ein neuer "Herbert" erstellt →
  der neue Herbert erbte alle Errungenschaften des alten, obwohl er sie nie selbst erreicht hat

**Fix — Achievements.lua:**
- **`GetCharacterKey()`** neu: Verwendet `UnitGUID("player")` als eindeutigen Char-Key
  (exakt wie Milestones.lua) — jeder Char hat seinen eigenen GUID-Slot
- **`MigrateOldData()`** neu: Erkennt altes Flat-Format und verschiebt es einmalig
  in den GUID-Slot des aktuellen Charakters — kein Datenverlust beim Update
- **`CheckHCReset()`** neu: Erkennt HC-Tod anhand Survivor-Meilenstein vs. aktuellem Level.
  Ist der Char deutlich unter seinem höchsten freigeschalteten Survivor-Level
  (>10 Level Differenz) → alter Stand wird archiviert, Fortschritt zurückgesetzt
- **`Initialize()`** überarbeitet: Registriert `PLAYER_LOGIN` Event (GUID erst dann verfügbar),
  richtet per-Charakter-Storage ein, führt Migration + HC-Reset-Check aus
- **`CheckAll()`** bereinigt: Guard `if not self.charKey then return end`,
  falsches `GuildDeathLogDB.achievements = self.unlocked` (Referenz-Überschreibung) entfernt

**Fix — Milestones.lua:**
- **`CheckHCReset()`** erweitert: Archiviert beim HC-Reset-Erkennen jetzt auch die
  Errungenschaften des Chars (`GuildDeathLogDB.achievements[charKey]`) und informiert
  das Achievements-Modul live über den neuen leeren Slot

**Resultat:**
- Neuer "Herbert" (neue GUID) → leerer Errungenschaften-Slot → muss alles selbst erspielen ✓
- Gleiche GUID nach HC-Tod (Softcore/Ghost) → CheckHCReset erkennt Level-Drop → Reset ✓
- Gilden-Errungenschaften bleiben weiterhin gild-/account-weit ✓
- Bestehende Daten werden per Migration automatisch dem aktuellen Charakter zugeordnet ✓

## Version 7.12.3 - INHALTSVERZEICHNIS: GRÖßERE SCHRIFT & BESSERE FÜLLUNG
**Linke Buchseite füllt nun den gesamten verfügbaren Platz (354/355px)**

### INHALTSVERZEICHNIS (UI.lua)
- **Kapitel-Einträge**: Höhe 19 → **22px**, Font 10pt → **11pt** — deutlich mehr Präsenz
- **Icons**: 16×16 → **18×18px** — proportional zur neuen Schriftgröße
- **Kapitelnummer-Breite**: 32 → **34px** — Platz für zweistellige Nummern bei 11pt
- **Aktiv-Balken**: Höhe 17 → **20px** — passt zur Eintrags-Höhe
- **Kategorie-Labels**: 8pt → **9pt**, Abstände angepasst (3+2+12 = 17px)
- **Schritt-Weite** pro Eintrag: 19 → **22px**
- Gesamtinhalt nutzt jetzt **354 von 355px** verfügbarer linker Seite

## Version 7.12.2 - ADDON-ONLINE-ANZEIGE & SCHRIFT-FEINSCHLIFF

### MINIMAP HOVER-PANEL
- **Neue Zeile**: `📖 X mit Addon online` — zeigt Anzahl der Gildenmitglieder, die GuildDeathLog aktiv haben (via Sync-Modul)
- Goldene `|cffFFD100` Zahl wenn jemand online, gedimmt `|cff3A3028` wenn niemand aktiv
- Panel-Höhe: 180 → 195px; alle folgenden Elemente (Moral, Aktionen) um 14px nach unten gerückt

### SCHRIFT-FEINSCHLIFF (UI.lua)
- Alle Body-Farben nochmals ~15 Einheiten dunkler:
  - Body-Standard: `#7A5030` → `#6A4020`
  - Abschnitts-Labels: `#8A6040` → `#785030`
  - Sub-Labels: `#7A5830` → `#684820`
  - Unter-Text: `#6A5040` → `#583830`
  - Klassen/Zonen: `#7A5838` → `#684828`
  - Nachruf: `#7A6050` → `#685040`
  - Memorial Sub-Info: `#8A6840` → `#785838`
  - Nav-Texte: `#6A5030` → `#583020`

## Version 7.12.1 - LESBARKEIT & GEDENKHALLE-FIX
**Helle Texte auf Pergament schwer lesbar — alle Body-Farben auf dunklere Warm-Töne korrigiert**

### LESBARKEIT (globale Korrekturen)
- **`MakeBookLine` Threshold**: MORPHEUS nur noch ab Größe ≥ 14pt (war 11pt) — verhindert ungewollten Fett-Text bei normaler Body-Schrift (11–13pt bleiben FRIZQT)
- **`MakeBookLine` Standardfarbe**: `|cff7A5030` (dunkles Warmbraun) statt `|cffC89870` (zu hell auf Pergament)
- **Masse-Replace**: `|cffC89870` → `|cff8A6040` (alle ~30 Inline-Stellen)
- **Masse-Replace**: `|cffA08060` → `|cff7A5830` (alle Sub-Label-Stellen)
- **Masse-Replace**: `|cff9A8068` → `|cff6A5040` (alle Unter-Text-Stellen)
- **Masse-Replace**: `|cff9A7A58` → `|cff6A5030` (Nav/TOC-Kapitel-Texte)
- **Masse-Replace**: `|cff9A7858` → `|cff7A5838` (Klassen-/Zonen-Texte)
- **`MakeBookRow`**: Sub-Text `|cff7A5840`, Rechts-Text `|cff8A6040`
- **Hinweis-Text** "Letzten Worte festlegen": `|cffC8A050` → `|cffA07840`

### GEDENKHALLE (Gedrungen-Fix)
- **Sub-Info** (Level/Zone/Mörder): Schriftgröße 8pt → 9pt, Farbe `|cff8A6840`
- **Nachruf-Text**: 8pt → 9pt, Farbe `|cff7A6050` (lesbares dunkles Warmbraun)
- **Trenner zwischen Einträgen**: Goldene 1px Ornament-Linie + 10px Abstand (war 6px hart)

## Version 7.12.0 - KOMPLETTES BUCH-REDESIGN: Narcissus/DialogueUI-Immersion
**Jede Seite, jeder Text, jedes Element überarbeitet — visuelles Gewicht, Atmosphäre, Lesbarkeit**

### GLOBALE FARB-REVOLUTION
- **Masse-Replace 1**: `|cff1A0A00` (nahezu-schwarz) → `|cffC89870` (warmes Pergament-Gold) — 27 Stellen
- **Masse-Replace 2**: `|cff2E1E0E` (fast-schwarz) → `|cffA08060` (mittleres Warmbraun) — 14 Stellen
- **Masse-Replace 3**: `|cff3A2A18` (dunkel, Nav) → `|cff9A7A58` (lesbar warm) — alle Nav-Texte
- **Masse-Replace 4**: `|cff4A3A28` (dunkel) → `|cff9A8068` (warm lesbar) — Memorial, Guild, Titles
- **Masse-Replace 5**: `|cff5A4A38` (dunkel) → `|cff9A7A58` (warm lesbar) — weitere Stellen
- **Masse-Replace 6**: `|cff5A4230` (Nav-Nummern dunkel) → `|cff8A6848` (sichtbar)

### LINKE BUCHSEITE
- **Buchtitel**: MORPHEUS 18pt (war 16pt), warmgold `#D4AA5E` (war fast-schwarz `#2C1A08`)
- **Gildenname**: Textfarbe 0.75/0.55/0.30 (war 0.42/0.30/0.18 = kaum sichtbar)
- **Ornamentlinie**: Helleres Gold 0.60/0.45/0.20 mit 0.70 Alpha
- **Kapitel-Hover**: `#F0C060` hell-gold statt mattem `#B8975A`

### RECHTE BUCHSEITE
- **Seitentitel**: MORPHEUS 16pt in `#D4AA5E` gold (war `#3a2518` dunkelbraun — kaum lesbar)
- **Ornamentlinien**: Heller 0.65/0.50/0.18 mit 0.70 Alpha + goldene Eckdots 0.82/0.62/0.20
- **Untertitel**: 0.68/0.52/0.32 (war 0.35/0.28/0.20 = zu dunkel)
- **SetRightPageHeader**: Kapitel-Titel immer in warmgold `#D4AA5E`

### MakeBookLine (Buchtext-Helper)
- **H1-Erkennung**: Schriftgröße ≥ 11 → automatisch MORPHEUS statt FRIZQT
- **H1-Standard-Farbe**: `#D4AA5E` (bright gold, dramatic) vs. `#C89870` für Fließtext
- **Text-Shadow** hinzugefügt: alle Texte mit 0.65 Alpha Shadow für Tiefe

### MakeBookRow (Datenzellen)
- **Zellen-Hintergrund**: Dunkelbraun 0.05/0.03/0.01 mit 0.30 Alpha (wie Narcissus data-rows)
- **Top-Trennlinie**: Gold 0.45/0.32/0.10 mit 0.18 Alpha pro Zeile
- **Icon**: 20×20 mit 4px Rand (war 2px), sauberer positioniert
- **Haupt-Text** mit Shadow, **Sub-Text** in `#9A8068`, **Rechts-Text** in `#C89870`

### STATISTIKEN-SEITE
- **Zonen-Balken**: Höhe 14px (war 10px), Farbe `0.82/0.20/0.12` mit 0.72 Alpha (lebendiges Rot)
- **Zonen-Labels**: `#8AA8C8` (helles Blaugrau) statt `#C89870` — klare Unterscheidung
- **Level-Balken**: Höhe 12px (war 8px), Heatmap-Farben kräftiger (0.75 Alpha)
- **Level-Zähler**: `#F0C060` bright-gold statt `#C89870`

### RUHMESHALLE
- **Namen**: MORPHEUS 11pt (war FRIZQT 11pt OUTLINE — fett/hässlich), klassenfarb-getönt
- **Level/Klasse**: `#C89870Lv. #F0C060Level  #9A7858Klasse` — 3-fach Farbhierarchie
- **Rang-Badge**: kein OUTLINE mehr (war OUTLINE 8pt)
- **Lebt-Badge**: kein OUTLINE mehr

### ERRUNGENSCHAFTEN-KATEGORIE-HEADER
- Höhe 30px (war 26px)
- 2px farbige Top-Linie + ADD-Shimmer
- Linker 3px Akzentbalken (kategorie-farbig)
- OUTLINE-freier Text in `#F0C060`
- Fortschritts-Badge: grün/gold/gedimmt je nach Prozentsatz

## Version 7.11.1 - CHRONIK DER GEFALLENEN: Vollständiges Immersiv-Redesign
**Narcissus/DialogueUI-Stil: Stärkeres visuelles Gewicht, mehr Atmosphäre, bessere Lesbarkeit**

### EINTRÄGE (CreateDeathEntry)
- **Höhe**: 80px (Standard) / 96px (mit Letzten Worten), war 62/78
- **Hintergrund**: Tieferes warmes Pergament `0.06/0.03/0.01` + Narcissus-Schimmer oben (26px)
- **Akzentbalken**: 4px statt 3px, ADD-Blend-Bloom (16px) hinter dem Balken
- **Klassen-Icon**: 38×38 statt 26×26, klassenfarb-getöntes Backing + Rahmen-Textur, Top-Sheen (Narcissus-Stil)
- **Name**: MORPHEUS 12pt (war 11pt), hellere Klassenfarbe ×1.25, Position bei 60px Abstand
- **Level/Klasse**: FRIZQT 9pt (war 8pt), klarer lesbar
- **Subtile Mittellinie** zwischen Name-Block und Kontext (Zone/Killer), klassenfarb-tönend
- **Hover**: Stärkeres Feedback – BG 0.14/0.08/0.02, Icon-Rahmen aufgehellt, Akzentbalken 100% sichtbar

### TAG-TRENNER (CreateDaySeparator)
- **Höhe**: 32px (war 24px)
- **Datum**: MORPHEUS 11pt in warmgold `#D4AA5E` (war FRIZQT 8pt) — deutlich dramatischer
- **2px goldene Kopflinie** + ADD-Shimmer-Streifen
- **Skull-Icon**: 18px (war 13px), stärkere Präsenz
- **Ornament-Linie** neben Skull
- Zähler rechts in warmem Orange statt gedämpftem Braun

## Version 7.11.0 - VISUELLER FEINSCHLIFF: Lesbarkeit & Immersion
**Alle Buchseiten: OUTLINE-Schriften entfernt, Farben aufgehellt, Kästchen-Icons ersetzt**

### VERBESSERUNGEN
- **Meilensteine – FETTE Schrift entfernt**: Erreichte Meilenstein-Namen verwenden kein `OUTLINE`-Flag mehr → schlankere, elegantere Darstellung. Neue Textfarbe `#F0C060` (warmgold) für freigeschaltete, `#7A7060` (gedämpft) für gesperrte Meilensteine
- **Errungenschaften – OUTLINE entfernt + Farben**: Gleiches Fix wie Meilensteine; freigeschaltete persönliche Errungenschaften in `#F0C060`, Gilden-Errungenschaften in `#88DDAA`
- **Graue Icon-Kästchen beseitigt**: Gesperrte Errungenschaften hatten `0.2/0.2/0.2` (grau) als Icon-Rahmen-Farbe – jetzt dunkles Warmbraun `#1A140D` statt Grau
- **Status-Badges entfernt**: Die hässlichen "Erreicht/Gesperrt"-Boxen durch ein simples Check/X-Icon ersetzt (kein Rahmen-Frame mehr)
- **Sub-Kategorie-Headers**: `OUTLINE` von Gilden-Unterkatgeorie-Beschriftungen entfernt
- **Chronik der Gefallenen – Textfarben aufgehellt**:
  - Level-Text: `#7A6250` → `#C89870` (gut lesbar warm)
  - Klassen-Text: `#4A3828` → `#9A7858` (lesbar)
  - Zonen-Text: `#506070` → `#8AA8C8` (helles Blaugrau)
  - Killer-Text: `#CC4444` → `#FF8878` (lebendiges Rot)
  - Letzte Worte: `#6A5840` → `#9A8868` (warmes Elfenbein)
  - Datum: `#5A4030` → `#9A8070`, Zeit: `#4A3828` → `#7A6858`

---

## Version 7.10.5 - BUGFIX: Gilden-Errungenschaften Zeitstempel
**Kritischer Logikfehler in "Sieben Tage Stille" und "Eiserne Ordnung" behoben**

### BUGFIXES
- **"Sieben Tage Stille" / "Eiserne Ordnung"** feuerten falsch, wenn Tode mit fehlendem oder ungültigem Timestamp (nil/0) gespeichert waren – `time() - 0` = Milliarden Sekunden → immer wahr
- **Root Cause**: `gd.deaths[#gd.deaths].timestamp or 0` – der Fallback `or 0` machte alle Zeitchecks permanent wahr bei defekten Einträgen
- **Fix**: Neue Helper-Funktionen `GetNewestDeathTimestamp()` und `GetOldestDeathTimestamp()` iterieren alle Tode und finden den echten Max/Min-Timestamp – kein Fallback auf 0 mehr
- **"Alte Garde"**: Gleicher Fix für `gd.deaths[1]` → nutzt jetzt ebenfalls `GetOldestDeathTimestamp()`

---

## Version 7.10.2 - FEINSCHLIFF & TYPOGRAFIE
**Buch-Icon entfernt, Schrift einheitlich, Supporter aus TOC, Close-Button neu positioniert**

### VERBESSERUNGEN
- **Buch-Icon aus Titel entfernt** – "Das Buch der Gefallenen" steht nun sauber zentriert ohne überlappende Grafik
- **Titel und Gildennamen zentriert** – alle Header-Offsets korrigiert, ornamentale Linie ebenfalls mittig
- **TOC-Schrift von MORPHEUS auf FRIZQT gewechselt** – Kapitelnummern & Titel nun schlank, gut lesbar (10pt, kein OUTLINE)
- **Kategorie-Labels OUTLINE entfernt** – dünnere, lesbarere Beschriftungen
- **Schatten auf TOC-Einträge** – subtile Tiefe ohne Lesbarkeits-Verlust
- **Supporter+ aus TOC entfernt** – Premium-Seite weiterhin über Toolbar-Icon erreichbar
- **Close-Button** in den rechten Buchrand integriert (TOPRIGHT -22, -22)

---

## Version 7.10.1 - LAYOUT-FIX
**Buch-Layout korrigiert: Header-Überlappung, Spine-Linie, Scroll-Bereich**

### BUGFIXES
- **Buch-Höhe** auf 900×520 erhöht (war 450) – mehr Platz für alle 14 Kapitel
- **Buchseiten** auf 365×465 vergrößert (war 385) – genug Raum für TOC-Liste
- **chY-Startposition** von -38 auf -58 korrigiert – kein Overlap mit Header mehr
- **Header-Icons** kompakter: Ring 52→32px, Icon 34→22px, Glow 70→46px
- **Schwarze Mittellinie (Spine)** von 4px auf 2px reduziert
- **Scroll-Offset Chronik** von -58 auf -80 korrigiert – kein Overlap mit Stats-Frame
- **Kapitel-Einträge** 21px→19px, Kategorie-Trenner 19px→17px für bessere Passung

---

## Version 7.3.0 - IMMERSION & INTELLIGENCE
**3 neue Module, 20 Buch-Zitate, UI-Verfeinerungen, Letzte Worte in Chronik**

---

### NEUE MODULE

**Todes-Jahrestag (Anniversary.lua)**
- Erinnert beim Login an Gildenmitglieder die heute/vor X Tagen gefallen sind
- Jahrestage (1 Jahr, 2 Jahre...) mit besonderer Gedenk-Nachricht
- Meilenstein-Erinnerungen: 7 Tage, 30 Tage, 100 Tage nach dem Tod
- Automatisch 15s nach Login

**Zonen-Warnung (ZoneWarning.lua)**
- Warnt beim Betreten einer Zone in der Gildenmitglieder gestorben sind
- Schweregrade: VORSICHT (2-4 Tode), GEFAEHRLICH (5-9), TODESZONE (10+)
- Zeigt bis zu 3 Namen der Gefallenen
- Sound-Warnung bei 5+ Toden
- ZONE_CHANGED_NEW_AREA + ZONE_CHANGED Events

**Woechentlicher Gildenbericht (Report.lua)**
- `/gdl report` oder `/gdl bericht`
- Zeigt: Tode diese Woche / Monat / Gesamt
- Gefaehrlichste Zone, Gefaehrdetste Klasse
- Hoechster Gefallener, Letzter Tod mit Zeitangabe

### BUCH-ZITATE
- 20 neue atmosphaerische Zitate (DE + EN)
- Beispiele: "Geschrieben mit Tinte und Traenen", "Die Tapfersten fallen zuerst"

### UI-VERFEINERUNGEN
- **Grauer Balken entfernt**: Aktives Kapitel nur noch goldene Textfarbe
- **Fette Schrift behoben**: OUTLINE bei Errungenschaften/PowerLevel entfernt
- **Chronik-Eintraege**: Dezentere Hintergruende, alle Texte mit Shadow
- **Stat-Zahlen**: Von gold zu dunkelbraun (lesbar auf Pergament)
- **Letzte Worte in Chronik**: Falls vorhanden, direkt im Eintrag als Zitat
- **f.quote Bug gefixt**: Quote-Crash (nil value) endgueltig behoben

### VERSION
- Addon Version: 7.2.1 -> 7.3.0

---

## Version 7.2.1 - TODERKENNUNG VERBESSERT
**Robustere Tod-Erkennung, Patreon-Link korrigiert, UI-Optimierung**

---

### TODERKENNUNG (KRITISCH)
- **11 Sprach-Muster** fuer System-Tod-Nachrichten (DE/EN/FR/ES):
  - "ist gestorben", "has died", "hat die Stufe", "hat Stufe", "hat Level",
  - "hat das Level", "hat es nicht", "died at level", "did not survive",
  - "est mort", "wurde besiegt"
- **Retry-Mechanismus** bei System-Tod: Roster wird neu geladen + 2s Retry wenn Mitglied nicht sofort gefunden
- **Roster-Detection jetzt mit Benachrichtigung** (Sound + Overlay + Chat) - nicht mehr stumm

### UI
- "INHALTSVERZEICHNIS" Schriftzug entfernt (mehr Platz fuer 14 Kapitel)
- Kapitel-Startposition optimiert (-38px statt -50px)

### BUGFIX
- Patreon-Link korrigiert: patreon.com/PsYke86 (statt /GuildDeathLog)

### VERSION
- Addon Version: 7.2.0 -> 7.2.1

---

## Version 7.2.0 - EPISCHE MEILENSTEINE & TITEL
**30+ neue Meilensteine, 25+ epische Titel, PvP/Social/Survival/Quest-Tracking, frFR Lokalisierung**

---

### NEUE MEILENSTEIN-KATEGORIEN

**PvP Ehrenhafte Siege (5 Stufen)**
- 10 / 50 / 100 / 500 / 1.000 Honorable Kills
- Tracking ueber GetPVPLifetimeStats()

**Gildentode Miterlebt (5 Stufen)**
- 1 / 10 / 25 / 50 / 100 Gildentode
- Basiert auf gespeicherten Todes-Daten im Buch

**Echtzeit-Ueberlebenstage (4 Stufen)**
- 7 / 30 / 90 / 365 Tage seit erstem Login
- Real-Time Tracking (nicht /played)

**Quest-Abschluesse (4 Stufen)**
- 100 / 250 / 500 / 1.000 Quests
- Live-Tracking ueber QUEST_TURNED_IN Event

**Gilden-Groesse (3 Stufen)**
- 10 / 25 / 50 aktive Gildenmitglieder

**Neue Meta-Meilensteine (3 Stufen)**
- PvP-Legende: 500 HKs + Level 60
- Ewiger Chronist: 50 Gildentode + Alle Dungeons
- Avatar von Azeroth: Level 60 + Alle Raids + 50k Kills + 30 Tage /played

### EPISCHE TITEL (25+ NEUE)

**PvP-Titel (m/w)**
- Ehrenhafter Streiter/Streiterin -> Schlachtfeld-Kaempfer/in -> Gladiator/in der Arena -> Eroberer/in von Azeroth -> Blutiger Kriegsherr/Blutige Kriegsherrin -> Legende der Schlachtfelder

**Todeschronist-Titel (m/w)**
- Zeuge/Zeugin des Untergangs -> Chronist/in des Jenseits -> Totengraeber/in von Azeroth -> Gefaehrte/in des Sensenmanns -> Hueter/in der verlorenen Seelen

**Ueberlebens-Titel (m/w)**
- der/die Zaehe -> Eiserner Wille -> der/die Unbeugsame -> Ewige Flamme von Azeroth

**Quest-Titel (m/w)**
- Auftragssucher/in -> Abenteuer-Sammler/in -> Meister/in der Auftraege -> Wissenshueter/in von Azeroth

**Gilden-Titel**
- Treuer Gildengefaehrte/Treue Gildengefaehrtin -> Herz der Gilde -> Bollwerk der Gilde

**Ultimative Meta-Titel**
- Ewiger Chronist der Gefallenen / Ewige Chronistin der Gefallenen
- Avatar von Azeroth (hoechste Prioritaet: 520!)

### INTERNATIONALISIERUNG
- Franzoesisch (frFR) fuer alle neuen Titel hinzugefuegt
- Geschlechts-Varianten (m/w) fuer ALLE Titel
- DE / EN / frFR Support

### VERSION
- Addon Version: 7.1.0 -> 7.2.0

---

## Version 7.1.0 - SUPPORTER+ INTEGRATION
**Supporter-System komplett ins Buch integriert, Patreon-Gating fuer Titel & Meilensteine**

---

### SUPPORTER+ KAPITEL (NEU)
- Neues Kapitel XIV "Supporter+" im Inhaltsverzeichnis
- Supporter-Status-Anzeige (Aktiv/Nicht aktiv) mit Tier-Info und Ablaufdatum
- Discord-ID Eingabefeld und Code-Einloesung direkt im Buch
- Patreon-Link Button (kopiert URL in Chat)
- Uebersicht aller Supporter-Perks nach Tier (Bronze/Silber/Gold)

### SUPPORTER-ICON IN TOOLBAR (NEU)
- Herz-Icon (Supporter+) in der unteren rechten Icon-Leiste neben Debug, Settings, etc.
- Ein Klick oeffnet direkt Kapitel XIV

### SUPPORTER-LOCK (NEU)
- Kapitel IV "Meilensteine" und VII "Titel & Raenge" zeigen Lock-Screen wenn kein Supporter
- Lock-Screen erklaert Feature als rein kosmetisch (kein Pay-to-Win)
- Direkter "Zu Supporter+" Button fuehrt zu Kapitel XIV zum Code einloesen

### INHALTSVERZEICHNIS OPTIMIERT
- 14 Kapitel mit leicht reduziertem Zeilenabstand (21px statt 22px)
- Kein Ueberlappen mit Footer-Zitat

### VERSION
- Addon Version: 7.0.0 -> 7.1.0

---

## Version 7.0.0 - IMMERSIONS-UPDATE
**Klassen-Totenglocke, Minimap-Skulls, Gedenk-Kerzen, Errungenschaften, Risiko-System**

---

### KLASSEN-TOTENGLOCKE (NEU)
- Jede Klasse hat eigene Todes-Sounds (Krieger=Gong, Paladin=Heilig, Jaeger=Wolfsheulen, Magier=Fizzle, etc.)
- Klassen-Icon statt generischem Totenkopf beim Bildschirm-Flash
- Fallback auf NightElf-Glocke wenn Klasse unbekannt

### MINIMAP-TOTENKOEPFE (NEU)
- Rote Totenkopf-Icons auf der Minimap an Orten wo Gildenmitglieder starben
- Hover zeigt Name, Level, Zone und Datum des Todes
- Aktualisiert sich alle 3 Sekunden basierend auf Spieler-Position
- Nur Tode mit gespeicherten Koordinaten (posX/posY > 0) werden angezeigt

### GEDENK-KERZEN (NEU)
- Kerzen-Icon (Gasthaus-Symbol) neben jedem Eintrag in der Gedenkhalle
- Nachts (20:00-06:00) leuchten Kerzen heller (Alpha 1.0 vs 0.6)
- Immersives Detail fuer das Gedenk-Erlebnis

### BLUTFLECKEN-SEITEN (NEU)
- Ab 5 Toden: Subtile rote Flecken-Textur oben rechts auf der Gedenkhalle
- Ab 15 Toden: Zweiter Blutfleck unten links
- Je mehr Tod, desto "befleckter" das Pergament

### TODES-UHRZEIT-HEATMAP (NEU)
- 24-Stunden Balkendiagramm: Zu welcher Stunde sterben die meisten?
- Heatmap-Farben: Wenig Tode = braun, Viele Tode = tiefrot
- Uhrzeit-Labels (0h, 6h, 12h, 18h, 23h) unter dem Diagramm

### MONATSVERGLEICH (NEU)
- Saisonale Statistik: "Jan 2026: 8 Tode, Feb 2026: 12 Tode"
- Balkendiagramm mit roten Balken, letzte 6 Monate
- Integriert in die Statistik-Seite

### RISIKO-ANZEIGE (ERWEITERT)
- DangerZone zeigt jetzt persoenliches Risiko-Level (NIEDRIG/MITTEL/HOCH/SEHR HOCH)
- Beruecksichtigt Spieler-Level: Tode von Spielern aehnlichen Levels zaehlen mehr
- Farbcodiert: Gruen -> Gelb -> Orange -> Rot
- Supporter-Beschraenkung entfernt - fuer alle verfuegbar

### ERRUNGENSCHAFTEN-SYSTEM (NEU)
- 11 Errungenschaften freigeschaltet durch Spielfortschritt:
  - Erster Zeuge, Chronist des Todes, Meister der Trauer
  - Zaeh wie Leder (Lvl 10), Hartgesotten (Lvl 20), Veteran (Lvl 40), Unsterblich (Lvl 60)
  - Vollbesetzte Gilde, Lebensmude, Nachruf-Schreiber, Letzte Worte
- Bildschirm-Ankuendigung + Sound bei Freischaltung
- Neues Kapitel XIII "Errungenschaften" im Buch
- Gilden-Power-Level: Summe aller Level der lebenden Mitglieder

### VERSION
- TOC + Addon Version: 6.5.0 -> 7.0.0

---

## Version 6.5.0 - DAS GROSSE UPDATE
**Totenglocke, Gilden-Rekorde, Level-Verteilung, Letzte Worte, Nachruf-Editor, Lesezeichen**

---

### TOTENGLOCKE (NEU)
- **Bildschirm-Flash**: Roter Overlay-Effekt wenn ein Gildenmitglied stirbt
- **Totenkopf-Icon + Name**: "X ist gefallen" mit Level und Zone
- **Doppelter Glockenschlag**: Dramatischer NightElf Bell Toll Sound
- Ein/Ausschaltbar in den Einstellungen
- Nur bei echten Toden (nicht bei Silent-Sync)

### LETZTE WORTE (ERWEITERT)
- **NEU**: "Meine letzten Worte festlegen" Button in der Gedenkhalle
- Spieler koennen vorab ihre letzten Worte eingeben
- Erscheinen im Buch wenn der Spieler faellt
- Werden gespeichert in GuildDeathLogDB.myLastWords

### NACHRUF-EDITOR (NEU)
- **NEU**: Bearbeiten-Button (Stift-Icon) neben jedem Gefallenen in der Gedenkhalle
- Individuellen Nachruf pro Gefallenem schreiben
- Ueberschreibt den Auto-Nachruf
- Gespeichert in GuildDeathLogDB.customNachrufe

### GILDEN-REKORDE (NEU)
- Hoechster Level-Tod (Name + Level)
- Niedrigster Level-Tod (Name + Level)
- Toedlichster Tag (Datum + Anzahl Tode)
- Erster und Letzter Eintrag im Buch
- Jeder Rekord mit thematischem Icon

### LEVEL-VERTEILUNG (NEU)
- Histogramm: Bei welchem Level sterben die meisten?
- 7 Level-Brackets (1-9, 10-19, ..., 60)
- Heatmap-Farben: Je mehr Tode, desto roeter der Balken
- Integriert in die Statistik-Seite

### LESEZEICHEN (NEU)
- Letzte geoeffnete Buchseite wird gespeichert
- Beim naechsten Oeffnen des Buches automatisch auf der letzten Seite

### VERSION
- TOC + Addon Version: 6.4.0 -> 6.5.0

---

## Version 6.4.0 - STATISTIK-REDESIGN & VISUAL BARS
**Visuelle Balkendiagramme, Klassen-Icons, deutsche Klassennamen**

---

### STATISTIKEN KOMPLETT NEU
- **NEU**: Klassenstatistik mit visuellen Balken in Klassenfarben
- **NEU**: Klassen-Icons (Krieger-Schwert, Magier-Hut etc.) vor jedem Eintrag
- **NEU**: Deutsche Klassennamen statt numerischer IDs (Krieger, Paladin, Jaeger, etc.)
- **NEU**: Zonen-Statistik mit roten Gefahren-Balken (proportional)
- Leere Zonen werden nicht mehr angezeigt (kein "Unbekannt: 6" mehr)
- Balkenbreite proportional zum hoechsten Wert

### VERSION
- TOC + Addon Version: 6.3.0 -> 6.4.0

---

## Version 6.3.5 - BERUFE & ROSTER-DETECTION
**Alle Gildenmitglieder im Buch, Roster-Tod-Erkennung, Lesbarkeit**

---

### BERUFE-SEITE ERWEITERT
- **NEU**: Zeigt jetzt ALLE Gildenmitglieder, nicht nur Addon-Nutzer
- Oben: Mitglieder mit Berufsdaten (alphabetisch sortiert, mit Klassen-Icon)
- Unten: Mitglieder ohne Addon mit "Berufe unbekannt (kein Addon)"
- Zusammenfassung: "X mit Berufsdaten | Y ohne Addon"

### ROSTER-CHANGE DETECTION
- **NEU**: Guild:UpdateMembers() erkennt jetzt verschwundene Mitglieder
- Wenn ein Mitglied aus dem Gilden-Roster verschwindet = moeglicher HC-Tod
- Erstellt automatisch einen Todes-Eintrag mit gespeichertem Level/Klasse/Zone
- Duplikat-Pruefung: Kein doppelter Eintrag wenn Tod bereits bekannt (24h Fenster)
- `syncedFrom = "Roster-Detection"` zur Nachverfolgung

### LESBARKEIT VERBESSERT
- Statistiken: Alle Texte in #1A0A00 (fast schwarz), Zahlen in #CC0000 (dunkelrot)
- Gildenkarte: Online #006600 (dunkelgruen), Offline #4A3A28 (braun)
- MakeBookRow: SubText #2E1E0E, RightText #3A2A18 (global dunkler)
- Kill-Statistik: "Umgebung / Unbekannt" entfernt, nur echte Gegner im Ranking
- Inhaltsverzeichnis: Kompakter (24px statt 27px), ueberlappt Fusszeile nicht mehr

### KALENDER ERWEITERT
- **NEU**: Zusagen/Vielleicht/Absagen Buttons pro Event
- Aktive Antwort farblich hervorgehoben
- Teilnehmerliste: "Dabei: Spieler1, Spieler2, ..."

### BUGFIXES
- Fix: StaticPopup editBox -> EditBox Kompatibilitaet (Classic Era)
- Fix: Memorial nachruf war Table statt String (.memorial extrahiert)
- Fix: Titel jetzt klickbar mit Hover-Tooltip und Auswahl-Funktion

---

## Version 6.3.4 - GILDEN-SYNC & MEMBER-TRACKING
**Gildenmitglieder vollstaendig tracken, auch ohne Addon**

---

### GILDEN-SYNC VERBESSERUNGEN
- **NEU**: `Guild:UpdateMembers()` speichert jetzt vollstaendige Mitglieder-Daten (Name, Rang, Level, Klasse, Zone, Online-Status, Berufe, LastSeen)
- **NEU**: `Guild:GetMemberInfo(name)` - Einzelnen Spieler-Snapshot abfragen
- **NEU**: `Guild:GetAllMembers()` - Gesamte Gildenliste abrufen
- **NEU**: `Sync:ProcessIncomingDeath()` - Tode werden jetzt mit Gilden-Roster angereichert:
  - Fehlende `classId` wird aus Gilden-Snapshot ergaenzt
  - Fehlende `level` wird aus Gilden-Snapshot ergaenzt
  - Fehlende `zone` wird aus Gilden-Snapshot ergaenzt
- **Ergebnis**: Tode von Gildenmitgliedern OHNE Addon werden jetzt vollstaendig erfasst (Klasse, Level, Zone)

### GILDENKARTE ERWEITERT
- **NEU**: Gildenkarte zeigt jetzt ALLE Mitglieder (Online + Offline) statt nur Online-Spieler
- Online-Spieler: Gruen markiert mit Zone, Rang und Level
- Offline-Spieler: Grau markiert, begrenzt auf 30 Eintraege mit "... und X weitere" Hinweis
- Gesamt-Uebersicht: "X Online | Y Offline | Z Gesamt"

### DATENSTRUKTUR
- `guildData.members[key]` speichert jetzt vollstaendige Table-Objekte statt Boolean
- Abwaertskompatibel: Alte `true`-Eintraege werden beim naechsten Roster-Update automatisch ersetzt

---

## Version 6.3.3 - UI POLISH & FUNKTIONS-FIXES
**Layout, Lesbarkeit, Titel, Kill-Stats, Kalender, Regeln**

---

### BUGFIXES
- **FIX**: Titel-Seite zeigte "table: 000001B26EF9EC50" - `GetSelectedTitle()` gibt direkt Table-Objekt zurueck, jetzt korrekt `.name` extrahiert
- **FIX**: Kill-Statistiken: Leere/unbekannte Killernamen werden zu "Umgebung / Unbekannt" zusammengefasst
- **FIX**: Extra `end` in RenderTitles entfernt (Syntax-Fehler)
- **FIX**: Kalender "Neues Event"-Button war unsichtbar (canEdit-Check entfernt, jeder kann Events erstellen)
- **FIX**: Gilden-Regeln "Regeln bearbeiten"-Button war unsichtbar (canEdit-Check entfernt)
- **FIX**: GuildStats zeigte "Letzter: ?" - jetzt wird letztes Todesdatum und Zone aus deaths-Array gelesen

### LAYOUT-VERBESSERUNGEN
- **ScrollFrame**: Bottom-Padding von 10px auf 40px erhoeht - Content ueberlappt nicht mehr die Icon-Leiste
- **Nicht-Chronik Seiten**: Scroll-Start von -30 auf -36 verschoben - mehr Abstand zum Seiten-Header
- **MakeBookLine**: WordWrap aktiviert mit dynamischer Hoehe (`GetStringHeight`) - Gilden-Regeln und lange Texte ueberlappen nicht mehr
- **Chronik**: Hintergrundfarben staerker kontrastiert, Info/Zone/Datum-Text heller fuer bessere Lesbarkeit

### DARSTELLUNG
- **Kill-Statistiken**: Neue Formatierung mit Rang-Nummern, "X Kills" und Prozentangaben
- **Titel**: Freigeschaltete Titel in Gruen mit "Freigeschaltet", gesperrte in Rot mit "Gesperrt"
- **GuildStats**: Zeigt letztes Todesdatum + Zone statt "?"

---

## Version 6.3.2 - FUNKTIONS-UPDATE & BUGFIXES
**Crashes, Schriftfarben, Gedenkhalle, Kalender, Gilden-Regeln, Kill-Statistiken**

---

### CRASH-FIXES
- **CRASH FIX**: `Professions:GetClassColor()` gibt Table zurueck statt String - jetzt korrekte Konvertierung zu Hex-Farbcode
- **FIX**: Chronik-Seite ueberlappte andere Kapitel wenn GUILD_ROSTER_UPDATE ausgeloest wurde - jetzt wird `UpdateChronicle` nur bei aktivem Kapitel I ausgefuehrt
- **FIX**: Kill-Statistiken zeigten "Unbekannt" weil `killedBy` nicht existiert - korrigiert zu `killerName` (+ Fallbacks)

### SCHRIFTFARBEN (v2)
- Komplett ueberarbeitet: **Dunkle Schrift auf hellem Pergament** statt umgekehrt
  - Standard-Text: `#2E1E0E` (dunkles Braun)
  - Sub-Text: `#4A3A28` (mittleres Braun)
  - Rechts-Text: `#5A4A38` (warmes Braun)
  - Header: `#1E0E00` (fast Schwarz)
  - Platzhalter: `#6A5A48` (gedaempft)
  - Kapitel-Titel: `#3A2A18` (klar lesbar)

### NEUE FEATURES
- **Gilden-Regeln**: "Regeln bearbeiten"-Button fuer Offiziere/Gildenleiter mit Popup-Editor
- **Kalender**: "+ Neues Event"-Button + Loeschen-Button (X) pro Event fuer Offiziere
- **Gedenkhalle**: Jeder Eintrag zeigt jetzt einen generierten Nachruf (ueber Memorial-Modul)
  - Fallback-Nachruf wenn Memorial-Modul keinen liefert
  - Killer-Name wird angezeigt wenn verfuegbar
  - Datum korrekt formatiert (auch aus Timestamp)
- **Kill-Statistiken**: Killer-Daten aus korrektem Feld (`killerName`) - zeigt jetzt echte Daten

### VERBESSERUNGEN
- Statistik-Seite: Killer-Counts nutzen korrektes Datenfeld
- Gedenkhalle: Unterstuetzt sowohl `class` als auch `classId` fuer Klassen-Farben

---

## Version 6.3.1 - BUGFIX & VISUAL POLISH
**Crash-Fixes, Schriftfarben, Debug-Icon, Modul-Kompatibilitaet**

---

### BUGFIXES
- **CRASH FIX**: `f.quote` nil-Error in `UpdateChronicle()` behoben (Zeile 827) - tritt nicht mehr auf wenn Buch-Quote nicht vorhanden
- **CRASH FIX**: `Titles:GetActiveTitle()` existierte nicht - ersetzt durch `Titles:GetSelectedTitle()` + `GetTitleById()`
- **CRASH FIX**: `Titles:IsTitleUnlocked()` existierte nicht - ersetzt durch `Titles:GetUnlockedTitles()` Lookup-Map
- **CRASH FIX**: `Professions:GetGuildProfessions()` existierte nicht - ersetzt durch `Professions:GetAllProfessions()` mit korrekter Datenstruktur (prof1/prof2 statt Array)

### VISUELLE VERBESSERUNGEN
- **Schriftfarben komplett ueberarbeitet**: Alle Texte auf der rechten Buchseite sind jetzt heller und gut lesbar
  - Standard-Text: `#E8D4B0` (warmes Creme)
  - Sub-Text: `#C8B498` (goldbraun)
  - Rechts-Text: `#B8A888` (warm)
  - Platzhalter-Text: `#B8A888` statt unsichtbarem Dunkelbraun
- **Linke Seite aufgehellt**: Buchtitel, Inhaltsverzeichnis, Kapitel-Nummern und -Titel jetzt gut sichtbar
  - Haupttitel: `#F0E0C0` (hell-gold)
  - Kapitel-Nummern: `#C8A868` (gold)
  - Kapitel-Titel: `#D8C0A0` (helles Pergament)
- **Chronik-Leertext**: Gruene Meldungen aufgehellt fuer bessere Lesbarkeit

### NEUE FEATURES
- **Debug-Icon**: 5. Icon in der Toolbar (Fragezeichen) oeffnet das Debug-Fenster direkt aus dem Buch

---

## Version 6.3.0 - DAS GROSSE BUCH-UPDATE
**Zwei-Seiten-Buch-Design, Inhaltsverzeichnis, 15+ Bugfixes, Code-Qualitaet**

---

### NEU: Echtes Zwei-Seiten-Buch-Layout
Das komplette UI wurde als **offenes Buch** (880x500) mit Buch.png-Textur redesigned!

**Linke Seite - Inhaltsverzeichnis:**
- 12 Kapitel mit roemischen Ziffern (I - XII)
- Icons, Titel und gepunktete Trennlinien
- Hover-Effekt (goldene Hervorhebung)
- Aktives Kapitel wird dauerhaft markiert
- Zitat am unteren Seitenrand

**Rechte Seite - Chronik & Content:**
- Statistik-Leiste (Gefallene, Heute, Woche, Avg Lvl)
- Scroll-Bereich fuer die Todesliste
- Totenkopf-Ornament als Trenner
- Zitat am unteren Seitenrand
- Kompakte Utility-Buttons (Refresh, Sync, Export, Settings)
- Debug + Gildenleitung (Offizier-only)
- Scroll-fuer grosse Bildschirme und kleine Aufloesungen
- "Inhalt" / "Chronik" Buttons zum Wechseln zwischen Seiten

**Kapitel:**
| Nr. | Kapitel | Beschreibung |
|-----|---------|-------------|
| I | Die Chronik der Gefallenen | Alle Tode, verewigt auf Pergament |
| II | Ruhmeshalle der Unsterblichen | Jene, die dem Tod trotzten |
| III | Statistiken des Todes | Zahlen, die Geschichten erzaehlen |
| IV | Meilensteine & Erfolge | Errungenschaften auf dem Pfad der Sterblichen |
| V | Berufe der Gilde | Das Handwerk unserer Kameraden |
| VI | Die Todeskarte | Wo das Schicksal zuschlug |
| VII | Titel & Raenge | Ehren, verdient durch Ausdauer |
| VIII | Gedenkhalle | In Erinnerung an die Gefallenen |
| IX | Gilden-Statistiken | Das Gesamtbild unserer Gilde |
| X | Gilden-Regeln | Die Gesetze unserer Gemeinschaft |
| XI | Gilden-Kalender | Vergangene und kuenftige Ereignisse |
| XII | Kill-Statistiken | Wer oder was uns das Leben nahm |

---

### Bugfixes (15 Probleme behoben)

**Kritisch:**
- **Version-String Mismatch** - Header und Print-Nachricht sagten "v6.0.3" statt "v6.3.0"
- **MinimapButton Supporter-Crash** - `GuildDeathLogDB.supporter.tier` existierte nicht (korrekter Pfad: `supporterTier`), Supporter-Tier "VIP" zu "Silber" korrigiert, Farbe angepasst
- **TestMode.lua abgeschnitten** - Datei endete mitten im Code (Zeile 119), Slash-Command-Handler fehlte komplett

**Nil-Access Schutz:**
- **KillerTracker.lua** - Nil-Check fuer `subevent` hinzugefuegt bevor `:match()` aufgerufen wird
- **KillerTracker.lua** - Nil-Check fuer `playerName` nach `strsplit()` hinzugefuegt

**Double-Hide Bugs (7 Stellen in 6 Dateien):**
- Calendar.lua - `btn:Hide()` wurde doppelt aufgerufen
- Debug.lua - `c:Hide()` wurde doppelt aufgerufen (2 Stellen: onlineChild + logChild)
- GuildLeader.lua - `row:Hide()` wurde doppelt aufgerufen
- GuildStats.lua - `child:Hide()` wurde doppelt aufgerufen
- HallOfFame.lua - `c:Hide()` wurde doppelt aufgerufen
- Memorial.lua - `child:Hide()` wurde doppelt aufgerufen

**Logic-Bugs:**
- **GuildStats.lua Global Pollution** - `CLASS_NAMES` war global statt `local`, verschmutzte den globalen Namespace
- **GuildStats.lua Classic-Kompatibilitaet** - Death Knight (6) und Monk (10) entfernt (existieren nicht in Classic Era)
- **Calendar.lua Delimiter-Sicherheit** - `:` in Event-Namen/Beschreibungen wird jetzt sanitisiert (verhindert Parsing-Fehler bei Deserialisierung)
- **GuildRules.lua Broadcast-Storm** - Antworten auf RULES_REQUEST werden nur gesendet wenn eigene Regeln existieren, Random-Delay auf 1-4s erhoeht

---

### Code-Qualitaet
- Alle Module auf Nil-Sicherheit geprueft
- TestMode.lua komplett repariert und mit Guard versehen
- Version-Strings synchronisiert (TOC, Header, Print)
- 6 Subagent-Reviews durchgefuehrt

---

## Version 5.9.9 - RESCAN BLACKLIST FIX
**Geloeschte Eintraege kommen beim Rescan nicht mehr zurueck!**

### Deathlog.lua Fix
- `TryImportEntry()` prueft jetzt die Blacklist BEVOR ein Tod importiert wird
- Gelöschte Namen werden beim Deathlog-Rescan ignoriert

### Sync.lua Fix
- `RecordLocalDeath()` prueft jetzt auch die Blacklist
- Verhindert dass geloeschte Tode auf anderem Weg wieder reinkommen

### Betroffene Stellen (alle mit Blacklist-Check):
1. `Sync:ProcessIncomingDeath()` - empfangene Sync-Daten ✓
2. `Sync:RecordLocalDeath()` - lokale neue Tode ✓
3. `Deathlog:TryImportEntry()` - Deathlog-Import/Rescan ✓

---

## Version 5.9.8 - RUSSISCHE LOKALISIERUNG + MULTI-CLIENT FIX
**Volle Unterstuetzung fuer DE, EN und RU Clients!**

### Neue Sprache: Russisch (ruRU)
- Komplette UI-Uebersetzung ins Russische
- Alle Buttons, Menues, Statistiken, Meldungen
- Russische Zitate im Buch
- Russische Todesnachrichten

### Professions.lua - Multi-Client Fix
- Header-Erkennung funktioniert jetzt auf allen Clients:
  - Deutsch: "Berufe", "Sekundaere Fertigkeiten"
  - English: "Professions", "Trade Skills", "Secondary Skills"
  - Russisch: "Профессии", "Ремёсла", "Вторичные навыки"
- Spezialisierungen (Talentbaeume) fuer alle drei Sprachen
- Keine manuellen String-Vergleiche mehr, Table-Lookup stattdessen

### Locale.lua Erweiterungen
- ruRU Lokalisierung komplett hinzugefuegt (~180 neue Strings)
- Klassen-Namen auf Russisch
- Alle UI-Texte uebersetzt

---

## Version 5.9.7 - PERSISTENTE BLACKLIST FIX
**Geloeschte Eintraege bleiben jetzt PERMANENT geloescht!**

### Hauptproblem gefixt
- **BUG:** Geloeschte Eintraege kamen nach Relog/Reload zurueck
- **URSACHE:** Blacklist war nur im RAM, nicht in SavedVariables
- **FIX:** Blacklist wird jetzt pro Gilde in `GuildDeathLogDB.guilds[name].deletedDeaths` gespeichert

### Aenderungen in Sync.lua
- Neue Helper-Funktionen: `GetBlacklist()`, `IsBlacklisted()`, `AddToBlacklist()`
- `ProcessIncomingDeath()` prueft jetzt die persistente Blacklist
- `BroadcastDelete()` und `HandleDeleteSync()` nutzen jetzt `AddToBlacklist()`
- Blacklist ist jetzt GILDEN-SPEZIFISCH (nicht global)

### Neue Befehle
- `/gdl blacklist` - Zeigt alle geloeschten Eintraege
- `/gdl clearblacklist` - Leert die Blacklist (nur Offiziere/GL)

### Migration
- `GetGuildData()` erstellt automatisch `deletedDeaths = {}` fuer alte Gilden

---

## Version 5.4.5 - TEXT-POSITIONEN KORRIGIERT
**Name nicht mehr über dem Header!**

### Positionen gefixt
- Name jetzt **unter** dem "Guild Death Log" Text (contentTop = -95)
- Klassen-Icon besser positioniert (links, vertikal zentriert)
- Alle Texte besser im dunklen Bereich zentriert
- Kleinere Schriftgrößen für bessere Passform

### Layout
- Name: 22pt (war 24pt)
- Level/Klasse: 13pt 
- Zone: 11pt
- Killer: 10pt
- Letzte Worte: 10pt, unten bei Y=30

---

## Version 5.4.4 - KORREKTES SEITENVERHÄLTNIS
**Popup jetzt mit Original-Bildproportionen 3:2!**

### Seitenverhältnis gefixt
- Original-Bild ist **1536 x 1024** Pixel (Verhältnis 3:2)
- Popup jetzt **460 x 307** Pixel - passt perfekt zum Bild!
- Keine Verzerrung mehr - Totenköpfe sehen wieder gut aus!

### Sound wieder da
- Epischer Death Sound (8959) ist zurück
- Raid Warning Echo nach 0.15 Sekunden

### Layout verbessert
- Klassen-Icon links (56x56)
- Name, Level, Zone mittig im dunklen Bereich
- Letzte Worte unten zentriert
- Alles passend zum "Todesmeldung" Header im Bild

---

## Version 5.4.3 - GEISTERHAFTER SOUND + LAYOUT FIX
**Engelshafter Chor statt Alarm + bessere Proportionen!**

### Neuer Sound: Geisterhaft/Engelshaft 👻
- **Engelshafter Chor** (Sound 11466) - "Ahhhhhhh" wie bei Geistern
- **Geister-Echo** (Sound 3332) - Leises Nachhall
- Kein nerviger Alarm-Ton mehr!

### Layout verbessert
- Popup ist jetzt **breiter** (580x155 statt 500x200) - wie ein Banner
- **Alle Texte zentriert** im Inhaltsbereich
- Name, Level, Zone alle schön mittig ausgerichtet
- Größeres Klassen-Icon (52x52)
- Bessere Abstände zwischen den Elementen

### Proportionen
- Das Popup passt jetzt viel besser zur Custom-Textur
- Kein "gequetschtes" Aussehen mehr

---

## Version 5.4.2 - EPISCHES TODES-POPUP
**Brandneues Custom-Design mit Skalierungsfunktion!**

### Neues Todes-Popup Design
**Custom Textur:** Epischer dunkler Rahmen mit Totenköpfen und rotem Akzent
- Professionelles "Todesmeldung / Guild Death Log" Design
- Passend zum Hardcore-Thema

### Skalierungsfunktion
**SHIFT + Linke Maustaste ziehen** = Popup größer/kleiner machen
- Skalierung von 50% bis 250%
- Live-Anzeige der aktuellen Größe während des Skalierens
- Einstellung wird automatisch gespeichert

### Bedienung
- **Linke Maustaste ziehen** = Popup verschieben
- **SHIFT + Linke Maustaste ziehen** = Popup skalieren
- **Rechte Maustaste** = Popup sofort schließen

### Weitere Verbesserungen
- Sanfteres Fade-In/Fade-Out (0.3s / 1.5s)
- Popup bleibt 10 Sekunden sichtbar (statt 8)
- Name wird in Klassenfarbe angezeigt
- Größerer Platz für letzte Worte (80 Zeichen)

---

## Version 5.4.1 - UI LAYOUT FIX + DEATHLOG ERKENNUNG
**Leitung-Button + Deathlog-Erkennung verbessert!**

### Fix: "Leitung" Button außerhalb des Fensters
**Problem:** Der Gildenleiter-Button (Leitung) hing außerhalb des Fensterrahmens
**Ursache:** Button-Position war bei Y = -2 (negativ = unter dem Fensterrand)
**Lösung:** 
- Fenster von 650px auf 700px Höhe vergrößert
- Alle Button-Positionen angepasst für 4 Reihen
- Footer und Scroll-Container neu positioniert
**Ergebnis:** Alle Buttons sind jetzt sauber im Fenster

### Fix: Deathlog-Addon wird nicht erkannt
**Problem:** Deathlog Status zeigte "Nein" obwohl Deathlog installiert ist
**Ursache:** Nur eine spezifische Variable wurde geprüft (`deathlog_data`)
**Lösung:** 
- Prüft jetzt 10+ verschiedene mögliche Variablennamen
- Prüft auch Addon-Tabellen (`Deathlog`, `DeathLog`, etc.)
- Prüft ob Addon geladen ist über `IsAddOnLoaded`
- Mehrere Erkennungsversuche (nach 2s, 5s, 10s)
- Verschiedene Datenstrukturen werden unterstützt
**Neuer Debug-Befehl:** `/gdl dlcheck` zeigt Deathlog-Status und alle globalen "death" Variablen

---

## Version 5.4.0 - PERFORMANCE & BUG FIXES
**Community-Feedback Update - 6 wichtige Bugs behoben!**

---

### Fix 1: FPS-Einbrüche beim Scrollen (Klassen/Berufe)
**Problem:** Bei 250+ Mitgliedern brachen die FPS stark ein, teilweise Freezes
**Ursache:** Bei jedem Scroll/Update wurden 250+ neue Frames erstellt und zerstört
**Lösung:** Frame-Pooling implementiert - Frames werden wiederverwendet statt neu erstellt
**Ergebnis:** Flüssiges Scrollen auch bei großen Gilden

### Fix 2: Einstellungen setzten sich zurück
**Problem:** Checkboxen in den Einstellungen wurden bei jedem Login zurückgesetzt
**Ursache:** Bei JEDER Versionsänderung wurden alle Settings überschrieben
**Lösung:** Settings werden nur noch bei komplett neuer Installation auf Defaults gesetzt
**Ergebnis:** Einstellungen bleiben dauerhaft gespeichert

### Fix 3: Neues Setting für Meilenstein-Nachrichten
**Problem:** Chat wurde bei großen Gilden mit Achievement-Nachrichten geflutet
**Lösung:** Zwei neue Einstellungen hinzugefügt:
- "Meilenstein-Nachrichten" - Chat-Ankündigungen an/aus
- "Meilenstein-Popup" - Popup-Fenster an/aus
**Ergebnis:** Jeder kann selbst entscheiden was angezeigt wird

### Fix 4: Bessere Lesbarkeit der Schrift
**Problem:** Graue Schrift war auf hellem Hintergrund schwer zu lesen
**Lösung:** Dunklere Schriftfarben (0.15, 0.1, 0.05 statt 0.3, 0.25, 0.2)
**Ergebnis:** Deutlich besserer Kontrast auf dem Pergament-Hintergrund

### Fix 5: Verbesserte Todes-Synchronisation
**Problem:** Todesstatistik war bei verschiedenen Spielern unterschiedlich
**Lösung:** 
- Sync-Intervall auf 5 Minuten reduziert (statt 15)
- Proaktiver Push alle 10 Minuten
- Zusätzlicher Sync 30 Sekunden nach Login
- Mehr Tode pro Sync (50 statt 20)
**Ergebnis:** Alle Gildenmitglieder sehen die gleichen Tode

### Fix 6: Berufe-Werte Synchronisation
**Problem:** Verschiedene Spieler sahen unterschiedliche Berufe-Werte für dieselbe Person
**Ursache:** Keine Konfliktlösung bei widersprüchlichen Daten
**Lösung:** Timestamp-basierte Konfliktlösung - nur neuere Daten werden akzeptiert
**Ergebnis:** Konsistente Berufe-Anzeige bei allen Spielern

---

### Technische Details

**Performance-Optimierungen:**
- Frame-Pooling: ~99% weniger Garbage Collection
- Wiederverwendbare UI-Elemente statt ständiger Neuerschaffung
- Reduzierte Memory-Allokationen beim Scrollen

**Sync-Verbesserungen:**
- Ping-Intervall: 3 Minuten (statt 5)
- Full-Sync: alle 5 Minuten (statt 15)
- Proaktiver Broadcast: alle 10 Minuten
- Login-Sync: nach 5s und 30s

**Neue Settings:**
- `milestoneAnnounce` - Meilenstein-Chat-Nachrichten (default: AN)
- `milestonePopup` - Meilenstein-Popup-Fenster (default: AN)

---

## Version 4.9.8 - HEUTE-ZÄHLER FIX
**Hauptfenster und Debug zeigen jetzt die gleiche Anzahl**

---

### Bug behoben: "Heute" Zähler

**Problem:**
- Debug-Fenster zeigte "3 heute"
- Hauptfenster zeigte "0 Heute"
- Beide sollten identisch sein!

**Ursache:**
- UI.lua verwendete UTC-Zeit: `time() - (time() % 86400)`
- Debug.lua verwendete lokale Zeit: `date("*t")` + `time({...})`
- Bei Zeitzone CET (UTC+1) führte das zu 1 Stunde Unterschied

**Fix:**
- UI.lua verwendet jetzt auch lokale Zeitzone
- Beide Fenster zeigen jetzt die gleiche Anzahl "Tode heute"

---

## Version 4.9.7 - TALENT-SPEC FIX
**Spezialisierung aktualisiert sich jetzt korrekt**

---

### Professions-Modul verbessert

**Neue Events für Talent-Aktualisierung:**
- `CHARACTER_POINTS_CHANGED` - Classic: Wenn Talentpunkte verteilt werden
- `PLAYER_TALENT_UPDATE` - Retail/WOTLK: Wenn Talente geändert werden
- `PLAYER_LEVEL_UP` - Bei Level-Up werden Infos neu gesendet

**Aktualisierungs-Zeiten:**
- Bei Berufsskill-Änderung: nach 2 Sekunden
- Bei Talent-Änderung: nach 1 Sekunde
- Bei Level-Up: nach 3 Sekunden
- Automatisch: alle 60 Sekunden

**Die Spezialisierung wird jetzt angezeigt für:**
- Alle Spieler ab Level 10 die Talentpunkte verteilt haben
- Aktualisiert sich automatisch wenn Talente geändert werden
- Zeigt den Talentbaum mit den meisten Punkten

---

## Version 4.9.6 - HOTFIX
**Debug-Fenster Anchor-Fix**

---

### Bug behoben

- **SetPoint Anchor Error** in Debug.lua Zeile 218 behoben
- `serverBox` Referenz zu `deathStatsBox` korrigiert
- Debug-Fenster oeffnet sich jetzt ohne Fehler

---

## Version 4.9.5 - FINALE VERSION
**STABIL, GETESTET, GILDEN-INTERN**

---

### ALLE SYSTEME VALIDIERT

Diese Version wurde gruendlich geprueft und alle Funktionen funktionieren wie geplant:

**13 Buttons - Alle funktionsfaehig:**
| Button | Funktion |
|--------|----------|
| Aktualisieren | Deathlog scannen + UI aktualisieren |
| Einstellungen | Einstellungsfenster oeffnen |
| Sync | Gilden-Sync anfordern |
| Export | Export-Fenster oeffnen |
| Debug | Debug-Fenster oeffnen |
| Ruhmeshalle | Hall of Fame anzeigen |
| Statistiken | Statistik-Fenster oeffnen |
| Meilensteine | Meilenstein-Fenster oeffnen |
| Berufe | Berufe-Fenster oeffnen |
| Gilden-Karte | Live-Tracker togglen |
| Titel | Titel-Fenster oeffnen |
| Gedenkhalle | Memorial-Fenster oeffnen |
| Gilden-Stats | Gilden-Statistiken anzeigen |

### Debug-Fenster verbessert

**6 Info-Boxen (neu organisiert):**
1. **Sync Status** - Version, Online Users, letzter Sync
2. **Online** - Liste der Gildenmitglieder mit Addon
3. **Deathlog** - Deathlog Addon Status, Eintraege
4. **Tode-Stats** - Gesamttode, Tode heute, letzter Tod (NEU!)
5. **Live-Tracker** - Tracker Status, Spieler auf Karte
6. **Addon Info** - Module, Speicher, Events

*Die redundante "Gilden-Sync" Box wurde durch "Tode-Stats" ersetzt.*

### Condolences v2.0 - Epische Todesnachrichten

**~125,000+ einzigartige Kombinationen:**
- 49 INTROS (epische Einleitungen)
- 48 CORES (Kernaussagen)
- 51 OUTROS (wuerdevolle Abschluesse)
- 51 SPECIALS (eigenstaendige Nachrichten)
- 45 Klassen-spezifische (9 Klassen × 5)
- 17 Level-basierte (4 Kategorien)

**Nur wuerdevolle, epische Nachrichten - keine Witze!**

### Gilden-interne Kommunikation

| Prefix | Modul | Funktion |
|--------|-------|----------|
| GDLSync | Sync | Todesfaelle syncen |
| GDLTrack | GuildTracker | Live-Positionen |
| GDLMile | Milestones | Meilensteine |
| GDLProf | Professions | Berufe |
| GDLTitle | Titles | Titel |

**Alles bleibt in der Gilde - keine Server-weite Kommunikation!**

### Bug-Fixes aus vorherigen Versionen

- Guild.lua: PLAYER_ENTERING_WORLD Event fuer korrektes Member-Loading
- GuildRoster() wird beim Login aufgerufen
- IsMember() laedt Members neu wenn leer
- Keine redundanten Debug-Boxen mehr

---

## Version 4.8.4
**VEREINFACHUNG: NUR GILDEN-INTERN**

---

### Server-weiten Counter ENTFERNT

Das Addon kommuniziert jetzt **NUR noch innerhalb der Gilde**:
- Kein Public Channel mehr
- Kein Server-weiter Counter
- Alles bleibt Gilden-intern wie gewuenscht

### Alle Kommunikation ist jetzt GILDEN-INTERN:

| System | Channel | Reichweite |
|--------|---------|------------|
| **Todes-Sync** | GUILD Messages | Nur Gilde |
| **Live-Tracker** | GUILD Messages | Nur Gilde |
| **Meilensteine** | GUILD Messages | Nur Gilde |
| **Berufe** | GUILD Messages | Nur Gilde |
| **PING/PONG** | GUILD Messages | Nur Gilde |

Fremde Gilden oder andere Spieler sehen **NICHTS** von euren Daten!

### Debug-Fenster angepasst

- "Server Users" Box umbenannt zu "Gilden-Sync"
- Zeigt jetzt: Mitglieder mit Addon online + Gesamtzahl Gildenmitglieder
- Kein externer Counter mehr

### Guild.lua Fix (aus v4.8.2)

- `PLAYER_ENTERING_WORLD` Event hinzugefuegt
- `GuildRoster()` wird beim Login aufgerufen
- `IsMember()` funktioniert jetzt korrekt
- Tode von Gildenmitgliedern werden erkannt

---

## Version 4.8.2
**SERVER USER COUNTER FIX + TOD-ERKENNUNG DEBUG**

---

### Server User Counter - DUAL MODE

Der Counter nutzt jetzt ZWEI Methoden gleichzeitig fuer maximale Kompatibilitaet:

**Methode 1: Public Channel (server-weit)**
- Channel: `GuildDeathLogCount`
- Messages: `GDL_COUNT_PING` / `GDL_COUNT_PONG`
- Fuer: v4.8.2+ User (auch aus anderen Gilden!)

**Methode 2: GUILD Messages (backward compatible)**
- Prefix: `GDLCnt`
- Messages: `CPING` / `CPONG` (und andere Varianten)
- Fuer: v4.8.0 und v4.8.1 User

Damit werden jetzt ALLE Addon-User gezaehlt, egal welche Version sie haben!

### Tod-Erkennung - Verbessertes Debugging

Bei Problemen mit der Tod-Erkennung zeigt `/gdl debug` jetzt genau:
- Warum ein Tod ignoriert wurde
- Ob der Blizzard HC-Channel aktiv ist
- Ob ein Spieler als Gildenmitglied erkannt wurde

### Systeme-Uebersicht

| System | Channel | Reichweite |
|--------|---------|------------|
| Gilden-Sync | GUILD Messages | Nur Gilde |
| Live-Tracker | GUILD Messages | Nur Gilde |
| Meilensteine | GUILD Messages | Nur Gilde |
| Berufe | GUILD Messages | Nur Gilde |
| Server Counter | PUBLIC + GUILD | Server-weit + Gilde |

---

## Version 4.8.1
**MAP-PINS FIX + SERVER USER COUNTER + KILLSTATS BUGFIX**

---

### WICHTIG: KillStats Bugfix!

**Problem:** Kills wurden gezaehlt wenn man nur in der Naehe war (mouseover, target, nameplate) und jemand ANDERES den Mob getoetet hat.

**Loesung:** 
- Neues Flag `damagedByPlayer` im Cache
- Wird NUR gesetzt wenn DU oder dein PET Schaden macht
- `UNIT_DIED` zaehlt jetzt nur wenn `damagedByPlayer=true`
- Pet-Kills werden korrekt mitgezaehlt

**Resultat:** NUR deine eigenen Kills zaehlen fuer Meilensteine!

### Debug-Fenster komplett neu!

6 gleichgrosse Info-Boxen in 2 Zeilen:

**Zeile 1:** Sync Status | Online | Deathlog Status
**Zeile 2:** Server Users | Live-Tracker | Addon Info

- Server Users werden automatisch beim Oeffnen gezaehlt
- Live-Tracker zeigt Status + Spieler auf Karte
- Addon Info zeigt Memory, Module-Anzahl, Uptime
- Module-Anzahl wird jetzt korrekt gezaehlt (kein "?" mehr)

### Karten-Pins komplett ueberarbeitet!

**Vorher:** Grosses Icon mit haesslichem schwarzen Kasten
**Jetzt:** Kleines, sauberes 16x16 Klassenicon mit dezenten Glow

- Kein schwarzer Border mehr
- Klassenicon in Originalfarben
- Dezenter pulsierender Glow in Klassenfarbe
- Wird groesser bei Hover (20x20)

### Tooltip-Fix

- Unicode-Symbole entfernt (WoW Classic Kompatibilitaet)
- Klare Textanzeige: "LIVE", "vor 7s" etc.
- Farbcodierung: Gruen=Live, Gelb=Kuerzlich, Orange=Aelter

### Server Addon-User im Status integriert!

`/gdl users` oder `/gdl trackerstatus` zeigt jetzt:

```
===========================================
GuildTracker v2.1 Status
===========================================
Gilde Live: 3 Spieler
Server Addon-User: (wird gezaehlt...)
-------------------------------------------
  Beatevonuse Lv42 - Stormwind [LIVE]
===========================================
Server Addon-User: 47
```

Die Server-Zaehlung laeuft automatisch nach 3 Sekunden.

---

## Version 4.8.0
**GUILDTRACKER v2.0 + EPISCHE TODESNACHRICHTEN!**

---

### Condolences v2.0 - EPISCHE Todesnachrichten!

**Modulares Nachrichten-System:**
Nachrichten werden dynamisch aus würdevollen Bausteinen zusammengesetzt.
**NUR epische, trauernde, respektvolle Nachrichten** - Hardcore-Tod verdient Würde.

**Aufbau:** `[INTRO] + [CORE] + [OUTRO]`
- **~50 Intros:** Dramatische, würdevolle Einleitungen
  - "Die Glocken von Sturmwind läuten..."
  - "Ein Schatten fällt über Azeroth."
  - "Die Ahnen rufen einen der Ihren heim..."
- **~50 Cores:** Ehrenvolle Hauptaussagen
  - "NAME ist gefallen"
  - "NAME wurde in die Hallen der Tapferen aufgenommen"
  - "NAME kämpfte bis zum bitteren Ende"
- **~50 Outros:** Würdevolle Abschlüsse
  - ". Ruhe in Frieden."
  - ". Mögen die Titanen über dich wachen."
  - ". Niemals vergessen."

**Spezial-Kategorien:**
- **~40 eigenständige Spezial-Nachrichten** (episch, emotional)
- **Klassen-spezifisch:** Würdevolle Nachrichten für jede Klasse
  - Paladin: "Das Licht weint um NAME. Ein Paladin ist heimgekehrt."
  - Krieger: "NAME's Schwert ist verstummt. Der Krieger ruht in Ehren."
- **Level-basiert:** Passend zum erreichten Level
  - "NAME (Level 60) - Ein wahrer Champion ist gefallen. Ewige Ehre sei dir."

**~125.000+ mögliche Kombinationen!**

**Test-Befehle:**
- `/gdl msgtest` - Zeigt 10 zufällige Nachrichten
- `/gdl msgstats` - Zeigt Statistiken

---

### 🗺️ GuildTracker v2.0 - Komplett neu!

**Adaptive Broadcast-Intervalle:**
- **3 Sekunden** bei Bewegung (statt 0.75s - reduziert Netzwerklast)
- **15 Sekunden** bei Stillstand (intelligente Erkennung)
- **30 Sekunden** Heartbeat für Spieler die komplett still stehen

**Robustes Stale-System:**
- **60 Sekunden** Timeout (statt 5s - kein Flackern mehr!)
- Spieler verschwinden erst nach 60s ohne Update
- Sauberes Cleanup alle 10 Sekunden

**Delta-basiertes Senden:**
- Position wird nur gesendet wenn sie sich ändert
- Spart Bandbreite und verhindert Rate-Limiting
- Bewegungserkennung mit 0.1% Threshold

**Smooth Interpolation:**
- Hermite-Spline für extra-flüssige Pin-Bewegung
- 20 FPS Pin-Updates (50ms Intervall)
- 3 Sekunden Interpolationsdauer

**Neue Events:**
- ZONE_CHANGED_NEW_AREA: Sofortiges Broadcast bei Zonenwechsel
- ZONE_CHANGED: Position wird bei jedem Zonenwechsel aktualisiert

**Level-Anzeige:**
- Spieler-Level wird jetzt mit gesynct
- Anzeige im Tooltip und am Pin

---

### 📊 Technische Details

| Parameter | Alt (v4.7) | Neu (v4.8) | Begründung |
|-----------|------------|------------|------------|
| Broadcast (Bewegung) | 0.75s | 3s | GuildMap Standard |
| Broadcast (Stillstand) | 0.75s | 15s | Bandbreite sparen |
| Stale-Timeout | 5s | 60s | Kein Flackern |
| Heartbeat | - | 30s | Präsenz-Check |
| Pin-Update FPS | 33 | 20 | Performance |
| Interpolation | Linear | Hermite | Smoother |

---

### 🔧 Befehle

- `/gdl tracker` - Toggle GuildTracker an/aus
- `/gdl trackerstatus` - Zeige Status und Online-Spieler

---

## Version 4.7.0
**NEUE MODULE: Gedenkhalle & Gilden-Statistiken!**

---

### 🪦 NEU: Memorial-Modul (Gedenkhalle)
Ehre die Gefallenen mit zufaelligen Nachrufen!

**Features:**
- Liste aller verstorbenen Gildenmitglieder
- **56 zufaellige Nachrufe** (28 DE + 28 EN)
  - Ehrenvoll: "Ruhe in Frieden, tapferer Held."
  - Humorvoll: "'Ich tank das' - Letzte Worte."
  - Episch: "Selbst der Tod konnte deinen Ruhm nicht mindern."
- Klassenicon mit Totenkopf-Overlay
- Level, Zone, Killer, Todesdatum
- **Verstorbene werden automatisch aus Berufe-Liste entfernt**

**Befehle:** `/gdl memorial`, `/gdl rip`, `/gdl gedenken`

---

### 📊 NEU: GuildStats-Modul (Gilden-Statistiken)
Ueberblick ueber die gesamte Gilde!

**Durchschnittslevel:**
- Gesamt-Durchschnitt aller Gildenmitglieder
- Online vs Offline getrennt angezeigt
- Anzahl Mitglieder

**Tode pro Charakter (Ranking):**
- 🥇 Gold / 🥈 Silber / 🥉 Bronze fuer Top 3
- Klassenicon + Name in Klassenfarbe
- Anzahl Tode (farbcodiert: Rot ≥5, Orange ≥3, Gelb <3)
- **Hover-Tooltip** mit allen Tod-Details:
  - Level bei jedem Tod
  - Zone wo gestorben
  - Datum des Todes

**Befehle:** `/gdl gstats`, `/gdl guildstats`, `/gdl gildenstat`

---

### 🎨 UI-Verbesserungen

**Fenster sind jetzt vollstaendig deckend:**
- Gedenkhalle und GuildStats hatten transparenten Hintergrund
- Jetzt mit solidem Pergament-Hintergrund
- Gold-Border wie alle anderen Fenster

**Schriftfarben optimiert (GuildStats):**
- Durchschnittslevel: Grosses Gold mit Outline
- Online/Offline: Gut lesbare Gruen/Grau-Toene
- Rang-Medaillen: Echte Gold/Silber/Bronze Farben
- Namen: Volle Klassenfarben (nicht abgedunkelt)
- Header: Mittleres Braun passend zum Pergament

**Fenster-Positionen (Cascade-Layout):**
- **Keine Ueberlappung** mehr wenn mehrere Fenster offen sind
- Alle Fenster sind verschiebbar (Drag & Drop)
- Gestaffelte Anordnung links/rechts vom Hauptfenster

```
  LINKS                    MITTE                    RECHTS
  
  Memorial (-480, +200)                    Settings (+500, +250)
                                           Titles (+420, +200)
                                           HallOfFame (+480, +100)
                           [HAUPT]
                             (0,0)         Statistics (+460, -50)
                                           GuildStats (+400, -100)
  Professions (-460, -200)                 Milestones (+440, -200)
  
                          Debug (0, -350)
```

---

### 🔄 Live-Sync fuer alle Fenster
Wenn ein Tod eingeht (lokal oder gesynct), werden alle offenen Fenster automatisch aktualisiert:
- ✓ Hauptfenster (Chronik)
- ✓ Gedenkhalle
- ✓ GuildStats
- ✓ Berufe-Fenster (Verstorbene werden entfernt)

---

### 🎯 Neue Buttons im Hauptfenster
**Reihe 3:** `[Titel] [Gedenkhalle] [Gilden-Stats]`

---

### 📋 Zusammenfassung der Aenderungen

| Kategorie | Aenderung |
|-----------|-----------|
| Neue Module | Memorial (Gedenkhalle), GuildStats |
| Neue Befehle | `/gdl memorial`, `/gdl rip`, `/gdl gstats`, `/gdl gildenstat` |
| UI | Cascade-Layout, deckende Fenster, lesbare Farben |
| Sync | Live-Update fuer alle offenen Fenster |
| Berufe | Verstorbene werden automatisch entfernt |

---

## Version 4.6.0
**GROSSES UPDATE: Echtzeit Gilden-Karte, Kill-Meilensteine & Titel-System!**

### 🚨 KRITISCHER BUG-FIX
**Mehrere Module wurden nie initialisiert!** Das betrifft:
- `GuildTracker` - Spieler auf der Karte wurden nicht angezeigt
- `Sync` - Todes-Synchronisation funktionierte nicht richtig
- `Professions` - Berufe wurden nicht gesynct
- `Milestones` - Level-Tracking startete nicht

**Alle Gildenmitglieder muessen auf v4.6.0 updaten!**

---

### 🗺️ ECHTZEIT Gilden-Karte
Sieh deine Gildenmitglieder LIVE auf der Weltkarte!

**Features:**
- **Echtzeit-Tracking**: Positionen werden alle 1.5 Sekunden gesynct
- **Fluessige Bewegung**: Pins bewegen sich smooth durch Interpolation (20 FPS)
- **Dezentes Design**: Kleiner farbiger Punkt in Klassenfarbe
- **Name bei Hover**: Name erscheint nur beim Ueberfahren mit der Maus
- **Tooltip**: Zone und letztes Update werden angezeigt

**Technische Details:**
| Einstellung | Wert |
|-------------|------|
| Broadcast-Intervall | 1.5 Sekunden |
| Stale-Timeout | 10 Sekunden |
| Pin-Update | 50ms (20 FPS) |
| Interpolation | Smooth Easing |

---

### 🏆 Custom Titel-System
Verdiene Titel durch Meilensteine - sichtbar fuer alle Gildenmitglieder!

**31 Titel verfuegbar:**

**Leichte Titel (ab 10-25 Kills):**
| Titel | Anforderung |
|-------|-------------|
| Wegelagerer | 25 Humanoide |
| Jaeger | 25 Wildtiere |
| Grabschaender | 25 Untote |
| Daemonentoeter | 25 Daemonen |
| Elementarjaeger | 25 Elementare |
| Welpentoeter | 10 Drachkin |
| Riesentoeter | 10 Riesen |

**Mittlere Titel (100 Kills):**
| Titel | Anforderung |
|-------|-------------|
| Banditenjaeger | 100 Humanoide |
| Wildnisjaeger | 100 Wildtiere |
| Untotenjaeger | 100 Untote |
| Daemonenbekaempfer | 100 Daemonen |
| Funkensammler | 100 Elementare |

**Hohe Titel:**
- Seuchenreiniger (5.000 Untote)
- Drachenbane (1.000 Drachkin)
- Eredarbane (1.000 Daemonen)
- Bestienmeister (2.000 Wildtiere)
- Titanentoeter (250 Riesen)

**Raid-Titel:**
- Champion von Naxxramas (Kel'Thuzad)
- Bezwinger von C'Thun
- Drachentoeter (Nefarian)
- Bezwinger des Feuerlords (Ragnaros)

---

### ⚔️ KillStats Modul
Trackt automatisch getoetete Kreaturen nach Typ:

**27 Kill-Meilensteine** (vorher 21):
| Kreaturtyp | Stufen |
|------------|--------|
| Humanoide | 25, 100, 500, 2.000 |
| Wildtiere | 25, 100, 500, 2.000 |
| Untote | 25, 100, 500, 1.000, 5.000 |
| Daemonen | 25, 100, 500, 1.000 |
| Elementare | 25, 100, 500 |
| Drachkin | 10, 50, 250, 1.000 |
| Riesen | 10, 50, 250 |

---

### 📊 UI-Verbesserungen

**Fortschrittsbalken fuer Kill-Meilensteine:**
- Kompakte Leiste unter der Beschreibung
- Stoppt bei 100% (kein Ueberlauf mehr)
- Automatische Freischaltung wenn Ziel erreicht

**Bessere Lesbarkeit:**
- Charakter-Info in Gold statt Grau
- Kategorie-Header groesser und kontrastreicher
- Kill-Zeilen dynamisch hoeher fuer Progress-Platz

**Tooltip-Fix:**
- Titel erscheint nur noch einmal (nicht doppelt)

---

### 🔧 Neue Befehle

| Befehl | Funktion |
|--------|----------|
| `/gdl titles` | Titel-Auswahl oeffnen |
| `/gdl mytitles` | Eigene Titel anzeigen |
| `/gdl kills` | Kill-Statistiken |
| `/gdl killcheck` | Verpasste Meilensteine nachholen |
| `/gdl trackstatus` | GuildTracker Status (LIVE/offline) |

---

### 🔧 Technische Aenderungen

- **Module initialisieren jetzt korrekt** via PLAYER_ENTERING_WORLD
- **Doppelte Initialisierung verhindert** durch self.initialized Flag
- **Creature Type Caching** fuer Kill-Tracking (WoW gibt Typ nach Tod nicht)
- **Interpolation** fuer fluessige Kartenpin-Bewegung
- **OnUpdate Frame** fuer 20 FPS Pin-Updates

---

## Version 4.5.3
**Weniger Chat-Spam - Nur eine Startup-Meldung**

### Aenderungen
- **Nur noch eine Login-Meldung:** Buch der Gefallenen: Aktiv (v4.5.3)
- Entfernt: Alle Debug-Meldungen bei Login

---

# Guild Death Log - Changelog (English)

## Version 4.6.0
**MAJOR UPDATE: Real-Time Guild Map, Kill Milestones & Title System!**

### 🚨 CRITICAL BUG FIX
**Several modules were never initialized!** This affects:
- `GuildTracker` - Players on map weren't displayed
- `Sync` - Death synchronization didn't work properly
- `Professions` - Professions weren't synced
- `Milestones` - Level tracking didn't start

**All guild members must update to v4.6.0!**

---

### 🗺️ REAL-TIME Guild Map
See your guild members LIVE on the world map!

**Features:**
- **Real-time tracking**: Positions sync every 1.5 seconds
- **Smooth movement**: Pins move fluidly through interpolation (20 FPS)
- **Clean design**: Small colored dot in class color
- **Name on hover**: Name only appears when hovering with mouse
- **Tooltip**: Zone and last update shown

**Technical Details:**
| Setting | Value |
|---------|-------|
| Broadcast interval | 1.5 seconds |
| Stale timeout | 10 seconds |
| Pin update | 50ms (20 FPS) |
| Interpolation | Smooth Easing |

---

### 🏆 Custom Title System
Earn titles through milestones - visible to all guild members!

**31 titles available:**

**Easy Titles (10-25 kills):**
| Title | Requirement |
|-------|-------------|
| Highwayman | 25 Humanoids |
| Hunter | 25 Beasts |
| Grave Robber | 25 Undead |
| Demon Slayer | 25 Demons |
| Elemental Hunter | 25 Elementals |
| Whelp Slayer | 10 Dragonkin |
| Giant Slayer | 10 Giants |

**Medium Titles (100 kills):**
| Title | Requirement |
|-------|-------------|
| Bandit Hunter | 100 Humanoids |
| Wilderness Hunter | 100 Beasts |
| Undead Hunter | 100 Undead |
| Demon Fighter | 100 Demons |
| Spark Collector | 100 Elementals |

**High Titles:**
- Plague Cleanser (5,000 Undead)
- Dragonbane (1,000 Dragonkin)
- Eredarbane (1,000 Demons)
- Beastmaster (2,000 Beasts)
- Titan Slayer (250 Giants)

**Raid Titles:**
- Champion of Naxxramas (Kel'Thuzad)
- Slayer of C'Thun
- Dragonslayer (Nefarian)
- Firelord Slayer (Ragnaros)

---

### ⚔️ KillStats Module
Automatically tracks killed creatures by type:

**27 Kill Milestones** (previously 21):
| Creature Type | Tiers |
|---------------|-------|
| Humanoids | 25, 100, 500, 2,000 |
| Beasts | 25, 100, 500, 2,000 |
| Undead | 25, 100, 500, 1,000, 5,000 |
| Demons | 25, 100, 500, 1,000 |
| Elementals | 25, 100, 500 |
| Dragonkin | 10, 50, 250, 1,000 |
| Giants | 10, 50, 250 |

---

### 📊 UI Improvements

**Progress bars for kill milestones:**
- Compact bar below description
- Stops at 100% (no overflow)
- Auto-unlock when goal reached

**Better readability:**
- Character info in gold instead of gray
- Category headers larger and higher contrast
- Kill rows dynamically taller for progress bar

**Tooltip fix:**
- Title now appears only once (not duplicated)

---

### 🔧 New Commands

| Command | Function |
|---------|----------|
| `/gdl titles` | Open title selection |
| `/gdl mytitles` | Show your titles |
| `/gdl kills` | Kill statistics |
| `/gdl killcheck` | Catch up missed milestones |
| `/gdl trackstatus` | GuildTracker status (LIVE/offline) |

---

### 🔧 Technical Changes

- **Modules now initialize correctly** via PLAYER_ENTERING_WORLD
- **Double initialization prevented** through self.initialized flag
- **Creature type caching** for kill tracking (WoW doesn't provide type after death)
- **Interpolation** for smooth map pin movement
- **OnUpdate frame** for 20 FPS pin updates

---

## Version 4.5.3
**Less Chat Spam - Only One Startup Message**

### Changes
- **Only one login message:** Book of the Fallen: Active (v4.5.3)
- Removed: All debug messages at login
