promotional bannermobile promotional banner

CombatAnalytics

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

File Details

1.2-release

  • R
  • Mar 21, 2026
  • 359.64 KB
  • 0
  • 12.0.1
  • Retail

File Name

CombatAnalytics-1.2-release.zip

Supported Versions

  • 12.0.1

tag 5a7779f247fd5d568d9fdf75222f01250e362118 1.2-release
Author:    github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:    Sat Mar 21 22:15:42 2026 +0200

Fixes and improvements

commit 789e97d97f122e8e848d50403b3893b0da0076d8
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 21:59:41 2026 +0200

    feat(seed): Battle.net spec meta + PvP talents seed data

    scripts/fetch_bnet_seed.py:
    - Authenticates with Battle.net Game Data API (client credentials)
    - Fetches all 40 specs: name, role (DAMAGE/HEALER/TANK), class name,
      classFile (DEATHKNIGHT etc.), and spec icon file_data_id
    - Fetches all 407 PvP talents: spell ID, name, full description,
      cast time, and compatible slot numbers
    - Runs both fetches concurrently (configurable --workers)
    - Caches raw JSON to data/raw/ for inspection and offline reruns
    - Generates SeedSpecMeta.lua and SeedPvpTalents.lua

    seed/generated/SeedSpecMeta.lua  (new — 40 specs):
    - Official spec names, roles, class IDs, classFile strings, and
      iconFileDataId for fallback icon resolution in the addon

    seed/generated/SeedPvpTalents.lua  (new — 40 specs × ~10 talents):
    - Every PvP talent per spec with spellId, name, full in-game
      description, castTime, and slot numbers
    - spellId works with C_Spell.GetSpellInfo for icon lookup in the UI

    StaticPvpData.lua:
    - Loads seedSpecMeta and seedPvpTalents from GeneratedSeedData
    - Exposes SPEC_META and PVP_TALENTS table references
    - Adds GetSpecMeta(specId) and GetPvpTalentsForSpec(specId) accessors

    CombatAnalytics.toc:
    - Loads SeedSpecMeta.lua and SeedPvpTalents.lua after SeedCounterTips

    .github/workflows/update-seed-data.yml:
    - Adds fetch_bnet_seed.py step before the legacy blizzard scripts
    - Runs weekly on Monday alongside murlok.io counter-tip refresh

    refactor(seed): consolidate all raw JSON under seed/raw/

    - Move data/raw/ → seed/raw/ so all seed assets (raw JSON + generated
      Lua) live under one directory tree
    - Update fetch_bnet_seed.py and fetch_counter_data.py to write cache
      files to seed/raw/ instead of data/raw/
    - Update GitHub Actions workflow to diff/add seed/ (covers both raw
      and generated subdirectories)
    - Remove data/raw/ from repository

    "overrides" JSON files are expanded to be full data sources:

    - seed/raw/dummy_catalog_overrides.json  → all 10 training dummy entries
    - seed/raw/spec_archetypes.json          → all 40 specs with archetypes/threatTags
    - seed/raw/spell_intelligence_overrides.json → full 159-spell catalog

    The script also regenerates SeedSpecMeta.lua and SeedPvpTalents.lua from
    their bnet_* cached JSONs, so all 5 generated seed files stay in sync.

    GitHub Actions workflow gains a final "Regenerate seed Lua from JSON sources"
    step that runs after all fetch scripts, ensuring the committed Lua always
    matches seed/raw/. Any data edit is now a one-file JSON change.

    Release v1.2

commit d48f6805d19a3db14fd14bb49336a16aedef0c6b
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 19:57:21 2026 +0000

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

commit 7ba0e5a947b901855d0205a89211cfd8bc847888
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 19:54:00 2026 +0000

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

commit d819e9673cb607b850fe171e52e427ec046072d1
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 21:44:09 2026 +0200

    feat(v1.2): startup minimap + Blizzard Settings registration; release notes

    Core.lua — InitializeRuntime():
    - Initialize MinimapButton at startup so the button shows immediately
      on login (default showMinimapButton = true already set in Constants)
    - Initialize SettingsPanel at startup so the canvas category is
      registered with Settings.RegisterAddOnCategory at PLAYER_LOGIN;
      CombatAnalytics now appears in ESC → Settings → Addons without
      needing /ca settings first

    docs/RELEASE_NOTES.md:
    - Add v1.2 release notes covering counter guide rework, seed pipeline,
      minimap fixes, Blizzard Settings registration, rating backfill, and
      all three CounterGuideView bug fixes
    - Fix duplicate v1.1 header

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

commit 4a23df807dfba03557cefdbf83f42fb55301d67d
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 21:32:36 2026 +0200

    feat: counters page rework, minimap toggle, rating backfill + bug fixes

    Counter Guide (UI/CounterGuideView.lua):
    - Full graphical rework: spec icon, class-coloured name, threat/win-rate
      bars, DR-family pills, spell icon grid, counter strategy cards,
      interrupt priority, safe windows, murlok.io global win rate
    - Fix hideElements: WoW UI objects are userdata, not table — type check
      was silently skipping all cleanup, letting elements accumulate
    - Fix ccFamilies DR pills: guide.ccFamilies is an array of
      {spellId, family} objects; pairs() returned integer indices; now
      correctly extracts unique family name strings (mirrors SuggestionsView)
    - Fix spell grid yPos double-advance: captured spellGridTop before loop
      so row offsets are always relative to the grid's starting position;
      yPos now advanced once after the loop using numRows calculation

    MatchupDetailView (UI/MatchupDetailView.lua):
    - Same ccFamilies fix: extract family strings from {spellId,family} array

    Minimap toggle (Constants.lua, Core.lua, SettingsPanel.lua):
    - showMinimapButton defaults to true (on by default)
    - /ca minimap toggles visibility with confirmation print
    - Blizzard Settings panel shows live status and a Toggle Minimap button

    Rating backfill (CombatTracker.lua):
    - At PVP_MATCH_INACTIVE, backfill ratingSnapshot from score API
      and fall back to scoreInfo.rating + ratingChange when needed

    Counter seed data:
    - seed/generated/SeedCounterTips.lua with curated tips, interrupt
      priority, safe windows, and murlok.io win rates per spec
    - scripts/fetch_counter_data.py fetches live murlok.io data and
      regenerates the Lua seed file
    - .github/workflows/update-seed-data.yml: weekly auto-refresh on Monday
      06:00 UTC, commits changed seed files back to main

    StaticPvpData / StrategyEngine:
    - GetCounterTips() accessor added; static tips merged into guide actions;
      interruptPriority, safeWindows, murlokWinRate surfaced from seed

    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

commit 012e6994aa15824e2c3260860a9cdaa4055cb902
Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Date:   Sat Mar 21 21:15:56 2026 +0200

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

commit 7fb108dc76218324ea76b4800892b3e5316e4ddf
Author: Lazar Dilov <ldilov@isimarkets.com>
Date:   Sat Mar 21 20:50:24 2026 +0200

    REstructured release notes