22 Commits

Author SHA1 Message Date
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
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
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
b5445da02a superbolide fix 2026-05-24 09:41:04 +02:00
Akurosia Kamo
28c045fee7 add caching of logs 2026-05-24 08:22:27 +02:00
Akurosia Kamo
b6d44d8ae0 add skill ids to map 2026-05-22 16:49:03 +02:00
Akurosia Kamo
c67b08737e small fix, stay on playner page on refresh and translate planner 2026-05-22 12:32:50 +02:00
Akurosia Kamo
14674d2842 small fix 2026-05-22 11:17:11 +02:00
Akurosia Kamo
89b4849ed4 aku test2 2026-05-22 10:49:49 +02:00
Akurosia Kamo
19bd79c056 if tank is selected track also tankbuster
on login keep url params
2026-05-22 08:43:45 +02:00
Akurosia Kamo
1753b1d2ee add translation of element, share page due to url params and default to analyse page 2026-05-21 16:05:05 +02:00
Akurosia Kamo
85d83e79a0 First run of codex 2026-05-21 15:54:25 +02:00
xziino
182f24ee93 Fix shield detection: timeline merge + static statusId map for all abilities
- Replace "only if no shield detected" fallback with always-merge approach:
  when absorbed > 0, check applybuff/removebuff timeline and add any shields
  not already resolved from the buffs field (name deduplication). Catches
  shields consumed mid-cast (absent from damage event buffs) alongside
  shields still active after the hit.
- Add static statusId fields for all tracked abilities (FFLogs ID = XIVAPI
  row_id + 1,000,000); mitigIdMap is now seeded from these as fallback.
- Update CLAUDE.md: document three buffType categories, statusId system,
  shield timeline mechanics, and FFLogs ID encoding.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 13:33:57 +02:00
xziino
7c0f070490 Add static statusId map for all mitigation abilities, drop supplementary buff query
All MITIGATION_ABILITIES entries now carry a statusId field (FFLogs status ID =
XIVAPI row_id + 1,000,000). The mitigIdMap is seeded from these static IDs as
fallback for abilities absent from masterData (e.g. pre-pull shields). Removes
the need for separate applybuff/removebuff API calls for name resolution. Also
adds shield buffType with tooltip on absorbed value, expanded icon set, and
unmitigatedAmount/mitigated passthrough.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 13:03:56 +02:00
xziino
14d1afc7d9 Fix duplicate mitigation icons for self-buffing abilities
Temperance (and similar abilities) have two status IDs in FFLogs —
one for the caster's self-buff and one for the party aura. Both
appeared in the buffs string causing double icons. Deduplicate by
name in resolveMitigations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:23:30 +02:00
xziino
8fe057e15b Add pull comparison feature and consistent player sorting
- Reference fight dropdown in Spieler card for same-report pull comparison
- Ref row per AoE event: ref damage + delta, absorbed, mitigation icons
- Missing mitigations (active in ref but not current) shown with red border
- Delta moved below job abbreviation in ref targets to reduce card width
- Players and targets sorted alphabetically within role for consistent ordering

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 16:01:57 +02:00
xziino
2d121b8ee5 Add proximity clustering, absorbed/overkill display, phase filter
- Replace fixed-window AoE bucketing with proximity clustering (1000ms
  from first event per ability) to prevent boundary splits
- Show absorbed shield damage in blue next to player damage (e.g. 40k +20k)
- Show overkill damage in red below job abbreviation on death
- Phase dropdown in AoE Timeline for multi-phase fights (phaseTransitions)
- Default phase selection: Ganzer Fight

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 15:30:59 +02:00
xziino
399e5fad93 Add analysis features: HP bars, death highlight, mitigation via buffs field, Event Explorer
- HP bar per player in AoE timeline (3-segment: remaining/damage/missing)
- Death highlight: red border + background when hp === 0
- Mitigation tracking refactored to read buffs field directly from damage events
  instead of separate applybuff/removebuff window tracking (simpler, more accurate)
- Mitigations are now per-target instead of per-event
- Add Magick Barrier to tracked mitigation abilities
- Player filter text input above AoE timeline
- Player cards as toggle buttons; tanks hidden by default; sorted Healer→DPS→Tank
- Fix Temperance double-display (dedup by name instead of abilityId)
- Event Explorer in Report tab: DataType, raw event type, ability, player dropdowns,
  limit, time range; abilities and players loaded on fight select
- Fight percentage display fix (was divided by 100 twice)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 14:58:10 +02:00
xziino
d792d5b718 Initial commit: FFLogs mitigation analyzer
Two-tab app: report viewer + analysis tab with AoE timeline,
per-player mitigation icons (local XIVAPI PNGs), and fight-wide
buff/debuff window tracking.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 10:42:38 +02:00