promotional bannermobile promotional banner

CombatAnalytics

CombatAnalytics is a combat session tracking addon for World of Warcraft: Midnight

File Details

1.7-release

  • R
  • Apr 3, 2026
  • 696.71 KB
  • 31
  • 12.0.1
  • Retail

File Name

CombatAnalytics-1.7-release.zip

Supported Versions

  • 12.0.1

tag df32bc22eeb1bc81c43bb7679e4bdd71875f3639 1.7-release
Author:    Lazar Dilov <ldilov@yahoo.com>
Date:    Fri Apr 3 04:28:00 2026 +0300

Release big refactors

commit cfaf224db26719937a6005bc549fb5318e55a799
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Fri Apr 3 04:27:14 2026 +0300

    Refactor Build screen and heuristics

commit cfaf224db26719937a6005bc549fb5318e55a799
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Fri Apr 3 04:27:14 2026 +0300

    Refactor Build screen and heuristics

commit 3f2bb8c6b94fb653804232895ec73f368fdef8cd
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Fri Apr 3 03:44:08 2026 +0300

    fix: DamageMeter session matching fails for arena (combined sessions)

    Root cause: C_DamageMeter uses DamageMeterCombineSessionType.Arena to
    create a single combined session for the entire arena match during the
    prep/loading phase — BEFORE PLAYER_REGEN_DISABLED fires. When
    MarkSessionStart captures the baseline, the arena DM session ID is
    already at or below the baseline, so FindSessionsForImport skips it.

    Changes:
    - Capture DM baseline early in HandlePlayerJoinedPvpMatch (before prep
      phase creates the combined arena DM session)
    - Reset activeSessionBaselineId after FinalizeSession so the next Solo
      Shuffle round can match the same combined DM session
    - Add fallback 2: include DM session at baseline-1 for cases where the
      combined session was created just before the baseline
    - Add fallback 3: take the latest available DM session regardless of
      baseline when all other candidates are exhausted (removes the
      lastSeenSessionId guard that could reject valid sessions)
    - Enhanced startup diagnostics with CVar state and DM session count
    - User-facing warning when damageMeterEnabled CVar is OFF

commit 48260532f2d4fe4a881af2a2b9c2b9b2fb01c474
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Fri Apr 3 00:11:21 2026 +0300

    fix: add damage meter diagnostics and user-facing import failure warnings

    DamageMeterService:
    - Log C_DamageMeter availability, CVar state, and session count at startup
    - Show chat warning if damageMeterEnabled CVar is OFF (most common cause
      of zero damage across all session types)
    - Add detailed pre-import trace logging: available session count, baseline,
      snapshot state, restriction state, combat lockdown flag
    - Add unavailability trace when IsAvailable returns false

    SummaryView:
    - Show orange warning banner below caption when damage import fails
    - Message varies by failure type:
      - failed_damage_meter_unavailable/failed_no_candidate: "Enable Damage Meter"
      - failed_no_meaningful_data: "Verify built-in Damage Meter is enabled"
    - Banner hidden when import succeeds or session has damage

commit 21f754b5cdc0ceea0d76fc5a9c795db2e1c8fe3b
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Thu Apr 2 23:55:14 2026 +0300

    feat: add 6 Midnight API enhancements for improved data collection

    1. C_Spell auto-classification: IsSpellCrowdControl, IsExternalDefensive,
       IsSpellImportant, IsSelfBuff — enriches spell aggregates with
       authoritative Blizzard classification, supplementing manual seed data.

    2. castBarID tracking: Non-secret cast sequence counter from 12.0.0+
       captured in UNIT_SPELLCAST events and timeline. Enables enemy cast
       sequence analysis even when spellID is secret in PvP.

    3. C_RestrictedActions state awareness: New ADDON_RESTRICTION_STATE_CHANGED
       event handler tracks when PvP/combat secrets are active. Stored on
       session.restrictionState for import strategy branching.

    4. Enemy CC tracking: C_LossOfControl.GetActiveLossOfControlDataByUnit
       now queried for arena1-5 opponents during HandleLossOfControlAdded.
       CC events exported to session.enemyCCEvents at finalization.

    5. Periodic DR snapshots: Every 5s during arena sessions, captures full
       diminishing returns state for all arena opponents via
       ArenaRoundTracker:GetDiminishState. Exported to session.drSnapshots.

    6. Opponent talent builds: C_Traits.GenerateInspectImportString captured
       during HandleInspectReady for arena opponents, stored as
       slot.talentImportString alongside existing PvP talent data.

commit e9d7892f17e9c22167348606119e96bd66de2758
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Thu Apr 2 23:20:28 2026 +0300

    fix: add visual stat bars and diamond chart to single-build overview

    The Build Comparator only showed visual graphics (stat bars, diamond chart,
    heatmap) in comparison mode (2+ builds). Since buildId is computed from
    talent selections (not gear), capturing with different gear doesn't create
    a second build — leaving users stuck on the text-only overview.

    Now the single-build overview renders:
    - Visual stat bars (blue horizontal bars for each secondary stat)
    - 4-axis stat diamond chart (Crit/Haste/Mastery/Vers)
    - Item level row below the diamond

    The Bar B row (orange) is conditionally hidden when only one build is
    present, avoiding confusing "---" placeholders.

commit 0b534073a983673633a96071f9447d901ac951d8
Author: Lazar Dilov <ldilov@yahoo.com>
Date:   Thu Apr 2 23:16:13 2026 +0300

    feat: fix training dummy damage tracking + redesign Build Comparator page

    Training dummy damage fix:
    - Restore InCombatLockdown() guard (C_DamageMeter is SecretWhenInCombat)
    - Add deferred import queue for sessions finalized during combat
    - Add UnitHealth delta sampling as last-resort damage fallback
    - Fix undefined unitToken variable in SessionClassifier (2 instances)
    - Populate TRAINING_DUMMY_CREATURE_IDS from SeedDummyCatalog

    Build Comparator redesign:
    - Replace scroll-list side panels with compact dropdown selectors
    - Add dual horizontal stat comparison bars (Crit/Haste/Mastery/Vers)
    - Add 4-axis stat diamond chart with rotated line textures
    - Add win rate heatmap grid comparing both builds vs opponent specs
    - Add single-build overview dashboard when only 1 build exists
    - Fix frame accumulation leak in dropdown (reuse pattern)
    - Fix click-outside dismiss (full-screen interceptor frame)
    - Fix missing _renderStatSection crash on Refresh Stats click

commit 956a4f0b0630cd36501142191dbf8ac087acd78f
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Mon Mar 30 06:33:50 2026 +0000

    chore(seed): auto-update seed data 2026-03-30