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>
- 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>
- 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>
- Export button in AoE Timeline card title row (replaces bottom bar)
- Import modal with mechanic-only vs with-mitigations choice,
new plan vs merge into existing plan
- Merge logic: match by abilityName + timestamp ±5s, keep existing assignments
- Color-coded assignment badges: blue=buff, red=debuff, gold=shield
- buffType stored in assignments for color rendering
- Modal radio button layout fix (override global input width:100%)
- Auto-switch to Planner tab after import
- window.showTab exposed from tabs.js
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Steps 1+2 of the planner roadmap: data model, create/rename/copy/delete
plans, read-only mechanic timeline, two-column layout mirroring the
analysis tab style.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Documents data model, import flow with merge logic, feature roadmap,
job-to-ability mapping, recast times, and technical decisions for the
upcoming third tab (Planer).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
When an external reference report is loaded and its roster differs from the
current report, a second player section appears below the main grid showing
all REF report players. REF tanks are hidden by default. Clicking any REF
player card toggles their visibility in the REF timeline rows.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace ghost icons (missing buffs in current pull) with green-bordered
icons on the REF row, indicating buffs unique to the reference pull
- Add shield tooltip to REF row absorbed values showing which shields were
active and which are missing in the current pull
- Filter same-report and external ref fight dropdowns to only show fights
matching the current fight name; current fight excluded from same-report list
- Extract FFLogs report code from pasted URLs in the ext-report input field
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
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>
Debuffs (Reprisal, Feint, Addle, etc.) now appear once next to the
ability name and REF label instead of repeating under each player card.
Flex layout on .aoe-ability matches the REF row spacing.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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>
- Cross-report comparison: toggle panel to load fights from a second
report code, select a fight to use as reference (mutually exclusive
with same-report ref dropdown)
- Fix ref-row player filter: use hiddenPlayerNames (name-based) so
ext-report targets with different actor IDs are correctly hidden
- Fix negative delta formatting: pass Math.abs(diff) to fmtDmg so
negative values are abbreviated the same way as positive ones
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
- 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>
- 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>