- Clarity of Corundum (GNB Proc, 15% DR, statusId 1002684) neu in
MITIGATION_ABILITIES, ABILITY_DR, JOB_ABILITIES, TIMELINE_PERSONAL_ABILITIES
- statusId fuer Heart of Corundum (1002683) und Great Nebula (1003838)
nachgetragen (stabilere Erkennung via buffs-Feld)
- Icons heruntergeladen: heart-of-corundum.png, heart-of-stone.png,
clarity-of-corundum.png (teilt HoC-Action-Icon vorlaeufig)
- Cache-Version v3 -> v4 (erzwingt Neu-Fetch nach Erkennungs-Aenderungen)
Separate Tankbuster:
- tankMaxHpFromEvent(): maxHP direkt aus dem aoe_event des getroffenen
Tanks statt Roster-Durchschnitt (ein Tank getroffen = sein MaxHP)
- renderMechanicListHtml: m.tankMaxHp hat Vorrang vor avgTankMaxHp(plan)
- plannedAssignmentsForMechanic: persoenliche Mitigation erscheint nur
auf der direkt zugewiesenen Mechanik (DRK-CDs nicht mehr auf GNB-TB)
- DR-Label: 'mitigiert' -> 'nach DR' (verbleibender Schaden, nicht
reduzierter Betrag)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Innerhalb DPS: Phys. Range (BRD/MCH/DNC) → Caster (BLM/SMN/RDM/PCT)
→ Melee (MNK/DRG/NIN/SAM/RPR/VPR). Sortierung unabhängig von der
Reihenfolge der Job-Slots im Info-Panel.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Beim Report-Import landen alle erkannten Ability-Assignments standardmäßig
3 Sekunden vor dem Mechanik-Timestamp (IMPORT_OFFSET_MS = -3000ms).
Linksklick im Gantt und manuelle Zuweisungen bleiben unverändert.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Commit 8217f68 rief auth_start_href() in report-form.php und login.php
auf, ohne die Funktion zu definieren. Generiert auth/start.php?return=
mit dem aktuellen Request-URI als Return-Pfad.
In index.php statt config.php da config.php skip-worktree hat.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
refreshTimeline() speichert scrollLeft vor dem innerHTML-Reset und
stellt ihn danach wieder her – die Ansicht springt beim Verschieben
von Abilities nicht mehr an den Anfang.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
assignmentWindowMs und candidateWindow nutzen jetzt max(duration, cooldown)
statt nur die aktive Dauer – Abilities konnten bisher erneut platziert werden
bevor ihr Recast abgelaufen war.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
setPointerCapture() leitet Compatibility Mouse Events (inkl. click) an das
capturing Element um – e.target im click-Handler war immer .timeline-scroll,
nie das angeklickte .timeline-track. Fix: document.elementFromPoint() für
zuverlässigen Hit-Test unabhängig von Pointer Capture.
Pan-Threshold zusätzlich von 3px auf 8px erhöht.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Eine Timeline-Zeile pro Ability statt pro Job
- Schilde ausgeblendet (außer Panhaima SGE)
- Balken zeigt aktive Dauer vs. Cooldown via Gradient
- Klick auf leere Zeile fügt Ability direkt hinzu
- Drop nur auf passende Ability-Zeile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Pläne aus localStorage als Ref-Quelle auswählbar ("+Plan als Referenz")
- planToRefEvents() konvertiert Plan-Mechaniken ins refEvents-Format
- PLAN-Label statt REF, kein Delta, kein Schadenswert
- Buff-Icons mit "fehlt"-Markierung, Debuffs im Header
- Shield-Assignments als "Schild"-Text mit Tooltip
- Schließt sich mit anderen Ref-Quellen gegenseitig aus
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Neues api/players.php: playerDetails + maxHp aus DamageTaken in einem GQL-Query
- Import-Modal übernimmt Jobs UND Namen (Heiler → DPS → Tank → Alphabet)
- buildPlayerRoster/extractJobComp: einheitliche Sortierreihenfolge
- Ref-Fight Export überträgt jetzt auch die Jobaufstellung
- Job-Slots zeigen importierte Spielernamen an
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ref-Vergleich prüft jetzt ob die aktuelle Gruppe den passenden Job hat
(via ABILITY_JOBS-Map), statt Spielernamen zu matchen. Fehlende
Mitigations werden nur noch in der REF-Zeile hervorgehoben — der
aktive Pull zeigt ausschließlich tatsächlich genutzte Mitigations.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fehlende Mitigations werden nun anhand des Job-Typs (z.B. SGE, PLD)
zugeordnet statt per Spielername — funktioniert auch wenn der Referenz-
Fight mit einer anderen Gruppe gespielt wurde.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Wenn eine Referenz aktiv ist, öffnet der Export-Button ein kleines
Dropdown mit den Optionen "Aktueller Fight" und "Referenz-Fight".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Datenmodell, Roadmap, Gantt-Entscheidungen, Äquivalente-Ort und
Recast-Format aktualisiert; veraltete Punkte entfernt.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Lokalisierte Ability-Namen in Badges und Modal
- Aktiver Plan wird per localStorage über Reload hinweg gespeichert
- Aktiver Tab wird per localStorage gespeichert
- refreshPlanLanguage() aktualisiert Namen beim Sprachwechsel
- api/analysis.php gibt mitigation_names zurück
- ff14-language-change Event in app.js
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Info-Panel in Sidebar: Farbschema-Legende + prägnante Hinweise bei fehlenden Jobs/Zuordnungen
- fight.php: immer englischen Endpoint nutzen damit Fight-Namen sprachunabhängig stabil sind
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>