BoneShieldReminder

A lightweight Blood Death Knight reminder addon for retail (mainline) 12.1. It watches your **Bone Shield** and tells you the moment you need to refresh it.
Back to Files

v1.1.0

File nameBoneShieldReminder-v1.1.0.zip
Uploader
ray929ray929
Uploaded
Sep 21, 2026
Downloads
340
Size
44.4 KB
Flavors
Retail
File ID
8936464
Type
R
Release
Supported game versions
  • 12.1.0

What's new

tag 5bda7130cd3fb1be208cf7abce312cc1b43aac9f v1.1.0
Author:    ray929 <pager9@outlook.com>
Date:    Mon Sep 21 10:34:03 2026 +0800

Release v1.1.0

Port the battle-tested CDM detection core from BloodDeathKnightHelper.

- Three-state aura reading (known / up): "unreadable" no longer counts as "absent",
  so pool rebuilds stop producing false alerts
- Down-edge debounce (1.0s) plus a per-aura absence grace (3s); Bone Shield and
  Ossuary paths are now decoupled
- Frame discovery recurses through GetChildren(), so buff-hidden cooldown frames
  are still found
- Refresh whitelist (Marrowrend / Death's Caress / Bone Collector) with a 0.8s
  alert suppression window to cover CDM frame update lag
- Talent gates: Dancing Rune Weapon requires Insatiable Blade (377637); Death Grip,
  Gorefiend's Grasp and Abomination Limb require Bone Collector (458572).
  Fails open when talent data cannot be read
- CDM icon pulses a red mask (0.7s period), cleared on refresh or window reset
- All three alert kinds share one voice file per language; Sichuan dialect removed
- Fix: ApplyLang resolved a nil global DB, so /bsr lang only changed the printed
  label and never switched text or voice

commit 9ac173bfbdd198bb98dba7604429c629f47a574b
Author: ray929 <pager9@outlook.com>
Date:   Mon Sep 21 10:02:36 2026 +0800

    fix(core): port the CDM detection core from BloodDeathKnightHelper

    This file was an earlier, weaker build of BloodDeathKnightHelper/BoneShield.lua.
    Port the fixes that version paid for, keeping the addon single-file with /bsr:

    - frame discovery: add GetChildren() recursion. GetItemFrames() equals
      GetLayoutChildren() and only returns IsShown() children, while the CDM hides
      the icon exactly when the aura goes inactive - so the frame vanished at the
      one moment it had something to say, and a dropped Bone Shield went unseen.
    - three-state readings (known/up): "cannot be read" no longer means "not
      there". Pool rebuilds and decoy frames used to invent a refresh alert.
    - proven-frame table: only a frame seen lit may report "absent".
    - down edge: DOWN_GRACE 1.0s, well above the 0.5s driver tick.
    - per-aura absence (BsMissing / OssMissing) instead of one shared check:
      Ossuary is a passive talent effect, so if it cannot be tracked the addon used
      to stall behind a permanent yellow notice. Countdown and the "Bone Shield
      down" alert now work regardless of it.
    - frame flag: try method IsActive(), then fields IsActive / isActive.
    - setup notice: says which entry is missing, and re-renders when that changes.

    REFRESH_IDS: drop 439843 (no such spell, it was a guess), add 49576 and
    1263569, and gate the pull / burst skills behind their talents (Insatiable
    Blade 377637, Bone Collector 458572) so an untalented cast no longer resets the
    window silently. Abomination Limb gets its 12s continuous window.

    Add the pulsing red mask over the CDM Bone Shield icon, /bsr flash on|off,
    /bsr test 1|2|3, and the gate check table printed on login / talent change.

    Fix ApplyLang reading a global DB: the module-level local DB was declared after
    it, so /bsr lang switched only the printed label - the alert text and the voice
    file never changed.

    Remove the Sichuan voice: option, command and Sounds/voice-sichuan.mp3.

This mod has no additional files