ShadowHelper1.0.2.zip
What's new
# Shadow Helper — Changelog (1.0.0 → 1.11.0)
## Core rotation & Next Cast logic
- Guitar Hero–style single highway bar: SWP, VT, Mind Blast, and SWD each ride their own thin sub-lane on one shared bar, positioned by real "need time" (accounts for cast time, not just raw remaining duration).
- "Next Cast" readout shows the single best action to press right now, including Inner Focus, Trinket/Destruction Potion during lust, Dark Rune/Mana Pot/Shadowfiend at configurable mana thresholds, and Fade at a configurable threat threshold.
- **Look-ahead collision protection**: before recommending anything, the engine checks whether casting it would occupy you long enough that SWP or VT would cross its own deadline in the meantime — if so, the dot force-preempts the original pick, even before it hit its own "green" window. (Example: Mind Blast comes off cooldown while VT has 2s left — VT now correctly jumps the queue instead of falling off mid-MB-cast.)
- VT always wins over SWP in a collision tie — VT's party-wide mana return is worth more than SWP's personal damage.
- **Mind Flay clip-awareness**: tracks the live channel and only recommends clipping it right after a tick lands (not mid-tick), unless a genuine SWP/VT emergency justifies interrupting immediately. Starting Mind Flay is itself subject to the same collision check as everything else.
- **Fade / threat management**: recommends Fade once your live threat (via the game's own threat API) crosses a configurable percentage, gated to group/raid only. Treated as a real emergency — can interrupt Mind Flay mid-tick.
- Bar-Queue Colors: the 4 highway lane bars are colored by their rank in the cast order (1st/2nd/3rd/4th up), not just their own individual readiness — fully player-customizable colors.
- Latency-aware timing: the "safe to recast" window for SWP/VT is read live from the game's own connection latency instead of a guessed fixed buffer, since Shadow Priest spells are confirmed hitscan (no travel time).
## Rotation & Tracking configuration
- Rotation tab: fully independent, reorderable, toggleable priority list covering Fade, Trinket, Destruction Pot, Inner Focus, Dark Rune, Mana Pot, Shadowfiend, VT, SWP, Mind Blast, SWD, and Mind Flay.
- Trinket/Destruction Pot: independent "While Lusted" / "Recommend when Exhausted" checkboxes (the latter checks the actual post-lust Exhaustion/Sated debuff, not just "lust isn't up").
- Dark Rune, Mana Pot, Shadowfiend, and Fade each get an inline editable trigger threshold (mana % or threat %) directly on their row.
- Per-item enable/disable checkboxes throughout, so unused items (no trinket that raid, no Destro Pot on hand, etc.) can be hidden from both the cooldown row and the recommendation logic.
## Buff Watch
- Tracks Shadow Protection, Fortitude, Inner Fire, and Divine Spirit — shown only when actually missing, works in any spec (not gated by Shadowform), toggleable per-buff.
- Lives on its own independent, draggable frame with short acronym labels and a single "Missing" indicator instead of repeating it per icon.
## UI & customization
- Split into three independently movable/lockable frames: Next Cast, Cooldowns, and Buff Watch — one shared lock toggle, each remembers its own position.
- Options panel split into General / Tracking / Rotation tabs, centered content throughout.
- Scale, Icon Size, and Bar Width controls; customizable Ready/Soon/Not-yet colors and Bar Queue colors.
- Load In Combat Only (hides Next Cast/Cooldowns outside combat; Buff Watch stays available) and Show Test Frames (forces visibility for repositioning).
- Shadowform gate: the rotation-specific frames disable themselves outside Shadow spec, live-updating on respec.
## Bug fixes (client-specific API issues)
- Fixed several silent failures caused by APIs that don't exist on this client (`GetItemInfoInstant`, `GetItemCooldown`) — these were causing cooldown-row items to error out or, worse, silently report "always ready" regardless of actual cooldown state (the root cause behind potions/Dark Rune getting recommended while genuinely on cooldown).
- Fixed the Shadowform spec-gate not actually gating anything for non-Shadow specs — root cause traced to a spellbook-scanning check with a fail-open safety net masking the real failure.
- Fixed Mind Blast/SWD flickering unavailable during the GCD sweep.
- Every cooldown/tracking check now runs in its own isolated error boundary, so one broken lookup can't silently blank out unrelated parts of the UI.
## Research-based corrections (mechanics verified, not assumed)
- Confirmed items (trinkets, potions, Dark Rune) don't trigger the shared GCD in this era of WoW, unlike spell casts — fixed the collision math that had been overstating how long using one would "block" other casts.
- Confirmed Mind Flay's tick count is haste-independent in TBC (haste only shortens the channel) — corrected an earlier assumption based on a source describing a much later expansion's mechanics.
- Confirmed Destruction Potion and Mana Potion share a cooldown category, while Dark Rune does not.
- Confirmed Fade's real numbers (330 mana, 10s duration, 30s cooldown at max rank) and its actual mechanic (temporary threat suppression, not permanent removal).
This mod has no additional files

