101 Commits

Author SHA1 Message Date
Akurosia Kamo
1e881be482 add also merge branch function to admin 2026-05-27 14:44:05 +02:00
Akurosia Kamo
e18252b491 add commit and push commands from web 2026-05-27 14:41:35 +02:00
Akurosia Kamo
c2cf4db458 fix branch names 2026-05-27 14:20:12 +02:00
Akurosia Kamo
0f4d5a98d4 fflogs-ids > admin 2026-05-27 14:16:26 +02:00
xziino
89d1ac0df1 Event Explorer: masterData.abilities.type + ABILITY_TYPE_PHYSICAL/MAGICAL Konstanten
- debug-events.php: masterData { abilities { gameID name type } } mitabfragen,
  Ergebnis als ability_meta-Tabelle + _ability-Feld pro Event im Output
- ffxiv-data.js: ABILITY_TYPE_PHYSICAL (128) / ABILITY_TYPE_MAGICAL (1024)
  als verifizierte Bitmask-Konstanten + abilityTypeIsPhysical/abilityTypeIsMagical
  Hilfsfunktionen -- Grundlage fuer dynamische Feint/Addle DR-Berechnung

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-25 12:39:36 +02:00
xziino
fce55c5bb6 Planer: Meine-Spells-View + Lila Personal-Farbe + Sidebar-Layout + Gantt-Scrollbar
- js/planner.js:
  - Mechaniken-Card: View-Toggle 'Mechaniken' / 'Meine Spells'
  - renderMySpellsHtml(): Assignments pro Mechanik gruppiert (1 Zeile statt 1 Zeile/Ability)
  - initMySpells(): Toggle-Logik, Job-Dropdown persistent (localStorage), Kopieren-Button
  - Personal-Mits lila (myspells-type--personal / badge-assign-personal) in beiden Views
  - Legende: Personal-Eintrag ergänzt
- css/planner.css:
  - .view-toggle-btns / .view-toggle-btn: Toggle-Button-Styles
  - .myspells-*: Cheatsheet-Layout (Grid, Badges, Farbkodierung)
  - .badge-assign-personal: Lila für Personal-Mits in Mechaniken-Übersicht
  - .info-legend-dot--personal: Lila Dot in Legende
  - .planner-info-panel: border-bottom statt border-top (jetzt oben in Sidebar)
  - .timeline-scroll: dunkler Custom-Scrollbar (webkit + scrollbar-color)
- templates/tab-planner.php: Info-Panel über Pläne-Sektion verschoben
- templates/topbar.php: Planer-Icon 📋 -> ☰

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 17:12:28 +02:00
xziino
1a91d1af0e Planer/Analyse: Personal-Mits Knight's Resolve, Nascent Glint, Stem the Flow/Tide, Aquaveil, Exaltation
- api/analysis.php: 6 neue Einträge in MITIGATION_ABILITIES
  Knight's Resolve (PLD, 1002675, 10% DR), Nascent Glint (WAR, 1001858, 10% DR),
  Stem the Flow (WAR, 1002679, 10% DR), Stem the Tide (WAR, 1002680, Shield),
  Aquaveil (WHM, 1002708, 15% DR), Exaltation (AST, 1002717, 10% DR)
- js/ffxiv-data.js: JOB_ABILITIES, ABILITY_JOB_MAP, MITIG_ICONS, ABILITY_DR aktualisiert
- js/planner.js: alle 6 in TIMELINE_PERSONAL_ABILITIES eingetragen
- assets/jsons/Action.json: Recast-Daten für Nascent Flash (25s), Aquaveil (60s),
  Exaltation (60s) ergänzt (Gantt-Balken)
- assets/icons/mitigation/: 6 neue Icons heruntergeladen (XIVAPI Status-Icons)
- api/cache.php: Version v6 -> v8

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 16:22:12 +02:00
xziino
636a65965a Analyse+Planer: sourceID fuer Reprisal/Feint/Addle via Cast-Events
- Neuer Abschnitt 2c in analysis.php: Cast-Events fuer Reprisal/Feint/Addle
  per 1 GQL-Request (3 Aliase) abfragen, da dataType:Buffs nur Friendly-
  Targets liefert (Boss-Debuffs fehlen dort)
- buffSourceTimeline mit Cast-Timestamps + 10s Dauer befuellt
- findBuffSourcePlayer(): sucht aktiven Caster zum Schadens-Zeitpunkt
- resolveMitigations(): gibt sourcePlayerType aus buffSourceTimeline zurueck
- guessJob() in planner.js: sourcePlayerType als erste Prioritaet vor
  job-basiertem Fallback -> DRK Reprisal, MNK Feint etc. korrekt zugeordnet
- analysis.js: Debuff-Icons im Header zeigen Job im Tooltip (z.B. DRK - Reprisal)
- Cache v5 -> v6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 15:22:55 +02:00
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
7eeeb5ef56 Merge remote-tracking branch 'origin/main' into akus_schabernack4 2026-05-24 11:55:11 +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
xziino
858a5e8f49 Merge remote-tracking branch 'Akurosia/akus_schabernack4' 2026-05-24 11:24:14 +02:00
Akurosia Kamo
fc2dc513ca personal mitigation 2026-05-24 11:23:01 +02:00
xziino
186d59fdc5 Merge remote-tracking branch 'Akurosia/akus_schabernack4' 2026-05-24 10:43:22 +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
xziino
206e09a57a config: .env.example entfernt, .env in .gitignore
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-24 10:10:51 +02:00
Akurosia Kamo
b5445da02a superbolide fix 2026-05-24 09:41:04 +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
Akurosia Kamo
4345fadc1c Merge remote-tracking branch 'origin/main' into akus_schabernack4 2026-05-24 08:22:40 +02:00
Akurosia Kamo
28c045fee7 add caching of logs 2026-05-24 08:22:27 +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
8217f68a0f fix login to keep url (again) 2026-05-24 08:02:32 +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
4ec929ebb7 CLAUDE.md: Dokumentation auf aktuellen Stand gebracht
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 18:00:42 +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
Akurosia Kamo
2275f0050d Merge remote-tracking branch 'origin/main' into akus_schabernack4 2026-05-23 12:04:07 +02:00
xziino
5dc61754f2 Add mitigation-actions.json; ignore config.php
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-23 10:28:30 +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