FatDadFlash
What's new
The main architectural rule is now enforced: each class owns its own rotation and timing logic. Shared code gathers state, validates whether an action can actually happen, caches items, estimates TTD and renders the UI. It does not decide what a Warrior, Hunter, Rogue, Mage, etc. should cast.
The biggest Hunter change
Hunter now genuinely has two independent timing clocks when melee weaving is enabled:
- AUTO tracks the next Auto Shot from the Hunter's actual current ranged weapon speed.
- MELEE tracks the Hunter's actual melee swing separately.
They are both visible, and the bars animate smoothly between combat events without rerunning the entire recommendation engine every frame.
Steady Shot is now fitted around the actual Auto Shot window. Kill Command remains immediate when usable, Multi-Shot substitutes for a Steady rather than blindly competing with Auto, and Raptor Strike only wins when the target is proven in melee range, a melee weapon exists, the melee swing is actually approaching, and enough ranged-cycle time remains to make the weave worthwhile.
That lines up closely with the trusted guidance. Icy Veins describes Hunter rotation as overwhelmingly about fitting Steady between Auto Shots, using Kill Command whenever available and substituting Multi-Shot for Steady; it also stresses that the optimal cycle depends on weapon speed. Wowhead specifically describes melee weaving as stepping in for Raptor Strike between the ranged cycle and reports a meaningful DPS gain when executed well, while emphasizing not clipping Auto unnecessarily.
What changed class by class
Warrior: Arms and Fury retain separate source-based logic. Arms protects the immediate post-auto Slam window and correct cleave ordering. Fury keeps Bloodthirst above Execute with Execute above Whirlwind in execute state, while Heroic Strike/Cleave are treated as queued melee attacks rather than ordinary spells. Fury's source priority agrees with the current Icy Veins ordering.
Retribution Paladin: the swing clock is now part of the actual class decision system rather than decoration. Command preparation, the final 0.4-second Blood/Martyr twist window, Crusader Strike, Judgement and Hammer of Wrath interact around that clock. Icy Veins explicitly describes the 1.6-second Command setup, final 0.4-second seal switch and the need for a swing timer, which is the behavior the module now models.
Hunter: BM, MM and Survival use the same fundamental Auto/Steady timing engine but retain spec-specific cooldown logic. Pre-Steady leveling behavior is separate, so a low-level Hunter isn't running a broken level-70 priority with missing skills. Wowhead likewise separates pre-62 Auto/Arcane/Multi behavior from the post-62 Auto/Steady cycle.
Rogue: your proven Quest/Dungeon Combat behavior remains intact. Parser Combat is separate and now protects an impending 5CP Improved Expose Armor, prevents SnD from incorrectly consuming those points, maintains SnD ahead of expiry, stacks cooldowns after the opening SnD, tracks Deadly/Shiv state and prioritizes sustained Rupture appropriately. That's consistent with Icy Veins' two principal Combat models, standard SnD/Rupture and the much tighter IEA/SnD juggling rotation. Assassination and Subtlety remain supported, but I am deliberately not pretending they have the same TBC PvE source confidence as Combat.
Shadow Priest: VT → SW:P → Mind Blast → safe SW:D → Mind Flay remains the backbone, with VE for genuinely long targets and TTD deciding whether a DoT is still worth applying. That mirrors current Icy guidance.
Elemental Shaman: I found and fixed another actual ordering issue during this pass. AoE had the possibility of putting Magma before Chain Lightning. It is now explicitly Fire Nova → Chain Lightning → Magma while Nova cools → Lightning Bolt, exactly matching current Icy Veins.
Enhancement Shaman: now has a visible melee SWING clock and a separate WF ICD clock following a detected Windfury proc. Stormstrike can make a very small bounded hold when the Windfury ICD is about to clear instead of blindly delaying it. AoE uses Fire Nova/Magma/Flame Shock and the single-target fire-totem cycle uses Fire Nova with Searing between Novas. Current Icy guidance likewise prioritizes Fire Nova, Magma while Nova is cooling, then Flame Shock spreading before returning to ST.
Arcane Mage: stays fundamentally different from the other casters because its correct decision depends heavily on how much fight remains. It uses mana, AB state, target TTD, Evocation/resources and encounter state to decide how aggressively it can burn rather than applying one static mana threshold.
Fire Mage: Improved Scorch is gated by whether the target will live long enough to repay the setup, and cooldown decisions account for Molten Fury execute. Current Icy guidance specifically emphasizes Fire's strong execute phase and cooldown timing around it.
Frost Mage: keeps Frostbolt as its backbone while evaluating Icy Veins, Water Elemental and whether Cold Snap will actually reset valuable cooldowns instead of using it simply because it is available.
Affliction Warlock: keeps UA, Corruption, Siphon Life, conditional Immolate and Shadow Bolt, with TTD preventing low-value DoT applications and an explicit Curse assignment system. That sequence matches current Icy guidance.
Demonology Warlock: now treats Felguard health and existence as part of rotation state. A dead/missing pet can trigger resummon logic, and a critically injured Felguard can trigger Health Funnel when preserving it is worth the cast. That's important because Icy explicitly describes keeping the Felguard alive as vital to the spec.
Destruction Warlock: I rechecked this carefully because conflicting historical material exists. The current max-level TBC logic retains Corruption as a pull-only action, rather than refreshing it continuously. It also distinguishes Fire versus Shadow filler and keeps Conflagrate movement-oriented rather than blindly using it on cooldown.
Balance Druid: Improved Faerie Fire, Moonfire, Treants, Starfire and movement Insect Swarm remain the core, but TTD now determines whether Moonfire/Treants can actually repay their cost. Icy similarly conditions Force of Nature on the Treants surviving most of their duration.
Feral Cat: now has its own ENERGY tick timer. The finisher inversion remains corrected: 4+ CP Rip if it can complete, otherwise Bite on a dying target, then maintain Mangle, Shred and powershift. Wolfshead/Furor, mana, energy and Omen state are considered before recommending the shift/Bite. This is directly consistent with Icy's current finisher ordering.
Simulation results
The final post-fix harness passed:
20 supported DPS specs
600 targeted/adversarial priority cases
2,400 randomized character/combat/target states
3,000 total spec decision cases
5,000 additional Hunter shot/melee timing cases
Hunter dual AUTO + MELEE timers: PASS
Smooth timer interpolation: PASS
Lua structural/balance checks: PASS
Cross-class rotational calls: 0
This mod has no additional files