67 Commits

Author SHA1 Message Date
xziino
a9b3cc8666 Planer: Clarity of Corundum + separate Tankbuster-Fixes
- 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>
2026-05-24 15:04:21 +02:00
Akurosia Kamo
e8863d83a5 more personals 2026-05-24 11:45:46 +02:00
Akurosia Kamo
90fcbb69a5 more personals 2026-05-24 11:39:51 +02:00
Akurosia Kamo
fc2dc513ca personal mitigation 2026-05-24 11:23:01 +02:00
Akurosia Kamo
646a7252c8 i forgot what i have added so... JUST TRUST BRO 2026-05-24 10:42:25 +02:00
Akurosia Kamo
1dfc727940 add missing boss skills by event or by time
add a recheck if delete of boss action is really wanted
toogle boss action to be a tankbuster or not
2026-05-24 10:23:59 +02:00
Akurosia Kamo
243cb0608c mark tankbuster as purple (superbolide is broken)
move stuff to env file and recommit config.php
2026-05-24 09:31:57 +02:00
xziino
eecab6d76a Planer: Gantt-Zeilenreihenfolge auf Healer → DPS → Tank geändert
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>
2026-05-24 08:53:37 +02:00
xziino
bb4eb301e0 Planer: Importierte Mitigations um 3s vor die Mechanik verschieben
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>
2026-05-24 08:50:11 +02:00
xziino
e40bdbea1c config: auth_start_href() in index.php definiert (fehlende Funktion nach Merge)
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>
2026-05-24 08:43:30 +02:00
xziino
669bcd937b Planer: Scroll-Position im Gantt nach Re-Render beibehalten
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>
2026-05-24 08:21:51 +02:00
xziino
be65d0b228 Planer: Gantt-Overlap-Check auf vollen Cooldown erweitert
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>
2026-05-24 08:17:22 +02:00
xziino
c983ca6621 Planer: Gantt-Klick zum Hinzufügen repariert (Pointer-Capture-Bug)
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>
2026-05-24 08:12:09 +02:00
Akurosia Kamo
fd0de86dbc fix timeline skills vocer multiple skills 2026-05-23 21:42:16 +02:00
Akurosia Kamo
0f8a90d1b4 move all skill/player things into a single file 2026-05-23 21:28:36 +02:00
Akurosia Kamo
8f00c22682 more timeline fixes and addle fix 2026-05-23 21:22:10 +02:00
Akurosia Kamo
fb6d50961a better moving of skills on the timeline 2026-05-23 21:10:19 +02:00
Akurosia Kamo
3276e3bfb3 timeline and skill dragin improvments 2026-05-23 21:03:13 +02:00
Akurosia Kamo
d0f54049e6 adjustments to skill behaviour 2026-05-23 21:00:19 +02:00
xziino
da226d54a2 Planer: Gantt-Zeilen pro Ability + aktive Dauer im Balken sichtbar
- 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>
2026-05-23 17:15:58 +02:00
xziino
cdd594e43e Planer: SGE-Abilities bereinigt (Eukrasian Prognosis II + Addle entfernt)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:50:43 +02:00
xziino
b27986c0f4 Planer: Schild-Input auf change-Event umgestellt (kein Fokus-Verlust beim Tippen)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:46:34 +02:00
xziino
e358a4e709 Planer: DR-Simulation + Schild-Eingabe in Mechanik-Cards
- ABILITY_DR-Map mit DR-Werten pro Ability (Feint = 5% magic)
- simulateDrMultiplier() berechnet multiplikativen DR-Faktor
- Mechanik-Cards zeigen mitigierten Wert (DR-only) + optional mit Schild
- SGE/SCH Schild-Feld (in k) im Info-Panel, wird pro Plan gespeichert
- Farbige Anzeige: grün = unter ∅ HP, rot = darüber

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 16:43:37 +02:00
xziino
8b00d1d2a8 Merge remote-tracking branch 'Akurosia/akus_schabernack4' 2026-05-23 12:59:51 +02:00
xziino
19922d79aa Planer: Durchschnittliche MaxHP (ohne Tanks) neben unmitigiertem Schaden anzeigen
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 12:59:16 +02:00
Akurosia Kamo
61fecbc576 add timeline feature 2026-05-23 12:48:08 +02:00
Akurosia Kamo
27b9b0785e fix fight selection 2026-05-23 12:11:18 +02:00
xziino
2e8818bb03 Analyse-Tab: Plan-Ref zeigt Spieler des Plans im Spielerfeld
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 09:54:49 +02:00
xziino
fb58226be8 Analyse-Tab: Plan als Referenz-Quelle
- 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>
2026-05-23 08:30:52 +02:00
xziino
6024560e61 Planner: Namen + Job Import aus beliebigem Report
- 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>
2026-05-23 08:08:22 +02:00
xziino
565dedc568 Analyse-Tab: Job-basierter Mitigation-Vergleich statt Namens-Match
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>
2026-05-22 22:53:01 +02:00
xziino
07a140442f Analyse-Tab: Ref-Vergleich nach Job statt Spielername
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>
2026-05-22 22:24:44 +02:00
xziino
349645f4cb Analyse-Tab: Export-Auswahl zwischen aktuellem und Referenz-Fight
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>
2026-05-22 22:20:37 +02:00
xziino
4801148a8c Merge akus_schabernack3: Lokalisierung + Tab-Persistenz
- 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>
2026-05-22 15:58:32 +02:00
xziino
9a2c1490de Planner: Info-Panel + Fight-Namen Fix
- 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>
2026-05-22 14:59:11 +02:00
Akurosia Kamo
15754fefda Merge remote-tracking branch 'origin/master' into akus_schabernack3
# Conflicts:
#	js/planner.js
2026-05-22 12:48:22 +02:00
xziino
1c0918a4a3 Planner: Äquivalenz-Hinweise verfeinert
- Grüner Hinweis wenn Äquivalent verfügbar (z.B. → Kerachole (SGE)?)
- Roter Hinweis "→ Kein Äquivalent!" wenn kein Ersatz vorhanden
- Grau-kursiv "→ Job zuordnen" bei Abilities ohne Job-Zuordnung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:43:27 +02:00
xziino
d585f3be5a Planner: Äquivalenz-Hinweise für fehlende Job-Abilities
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:36:16 +02:00
Akurosia Kamo
c3f18b38f5 small fix, stay on playner page on refresh and translate planner 2026-05-22 12:35:05 +02:00
Akurosia Kamo
c67b08737e small fix, stay on playner page on refresh and translate planner 2026-05-22 12:32:50 +02:00
xziino
84064669d3 Planner: uniquePlanName beim Kopieren anwenden
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:29:32 +02:00
xziino
be9d050036 Planner: Ordner-Struktur, Rechtsklick-Remove, Duplikat-Schutz
- Ordner CRUD (erstellen, umbenennen, löschen) in der Plan-Sidebar
- Pläne per 📁-Button in Ordner verschieben (Picker-Dropdown)
- Ordner auf-/zuklappbar mit Chevron-Animation
- Rechtsklick auf Ability-Badge entfernt die Zuweisung
- uniquePlanName(): Duplikat-Namen beim manuellen Erstellen blockieren
- Import-Modal: Name wird direkt mit eindeutigem Namen vorbefüllt

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 12:25:44 +02:00
Akurosia Kamo
14674d2842 small fix 2026-05-22 11:17:11 +02:00
Akurosia Kamo
7c6f443a53 Merge remote-tracking branch 'origin/master' into akus_schabernack3
# Conflicts:
#	js/planner.js
2026-05-22 10:52:41 +02:00
Akurosia Kamo
89b4849ed4 aku test2 2026-05-22 10:49:49 +02:00
cc36aa27c4 Merge pull request 'akus_schabernack2' (#2) from akurosia/ff14-mitigator:akus_schabernack2 into master
Reviewed-on: xziino/ff14-mitigator#2
2026-05-22 10:47:00 +02:00
xziino
969484a1dc Planner: assignment sorting, icons, remove buttons, missing-job highlight, mechanic delete, job pre-fill on import
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 10:43:25 +02:00
xziino
8f29619ef5 Planner Steps 4+5: job composition slots and ability assignment modal
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 10:23:47 +02:00
Akurosia Kamo
e2eed52d07 Merge remote-tracking branch 'origin/master' into akus_schabernack2 2026-05-22 09:40:11 +02:00
xziino
d73dd340c2 Planner import modal: default to Mechaniken + Mitigation, rename option
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 09:15:41 +02:00