diff --git a/ComboPointTracker.lua b/ComboPointTracker.lua index b696296..05a2677 100644 --- a/ComboPointTracker.lua +++ b/ComboPointTracker.lua @@ -145,14 +145,6 @@ CleveRoids.ImmolateSpellIDs = { [25309] = true, -- Rank 8 } --- ============================================================================= --- WARLOCK: Dark Harvest Duration Acceleration (TWoW Custom) --- Channeled spell that accelerates DoT tick rate by 30% while channeling --- Complex tracking: debuff expires 30% faster while Dark Harvest is active --- ============================================================================= --- TWoW custom (see MoltenBlast note). -CleveRoids.DarkHarvestSpellIDs = RankSet(52550) - -- ============================================================================= -- DRUID: Rake Debuff Cap Boss Whitelist -- These bosses are likely to hit the 48 debuff cap, causing Rake to get pushed off diff --git a/Core.lua b/Core.lua index 8774d3a..f3d9178 100644 --- a/Core.lua +++ b/Core.lua @@ -5061,26 +5061,6 @@ function CleveRoids.Frame:SPELLCAST_CHANNEL_STOP() CleveRoids.CurrentSpell.spellName = "" CleveRoids.CurrentSpell.castingSpellId = nil - -- WARLOCK DARK HARVEST: Mark channeling as ended - -- Credits: Avitasia / Cursive addon - if CleveRoids.darkHarvestData and CleveRoids.darkHarvestData.isActive then - CleveRoids.darkHarvestData.isActive = false - CleveRoids.darkHarvestData.endTime = GetTime() - - -- Apply Dark Harvest end to all DoTs on target (finalizes reduction) - if CleveRoids.libdebuff and CleveRoids.libdebuff.ApplyDarkHarvestEnd then - CleveRoids.libdebuff.ApplyDarkHarvestEnd(CleveRoids.darkHarvestData.targetGUID) - end - - if CleveRoids.debug then - local activeTime = CleveRoids.darkHarvestData.endTime - CleveRoids.darkHarvestData.startTime - DEFAULT_CHAT_FRAME:AddMessage( - string.format("|cff9482c9[Dark Harvest]|r Channel ended after %.1fs (DoT acceleration stopped)", - activeTime) - ) - end - end - -- Force immediate action update CleveRoids.TestForAllActiveActions() end diff --git a/Utility.lua b/Utility.lua index e2b8a6a..ea03849 100644 --- a/Utility.lua +++ b/Utility.lua @@ -2347,74 +2347,6 @@ local function SeedUnit(unit) end end --- WARLOCK DARK HARVEST: Duration Acceleration System (TWoW Custom) --- Credits: Avitasia / Cursive addon --- Dark Harvest is a channeled spell that accelerates DoT tick rate by 30% --- While channeling, DoTs on the target expire 30% faster - --- Calculate Dark Harvest reduction for a debuff record --- Returns the amount of time to subtract from remaining duration -function lib.GetDarkHarvestReduction(rec) - if not rec or not rec.dhStartTime then - return 0 - end - - local endTime = rec.dhEndTime or GetTime() - local dhActiveTime = endTime - rec.dhStartTime - if dhActiveTime > 0 then - return dhActiveTime * 0.3 -- 30% acceleration - end - return 0 -end - --- Track Dark Harvest start for all DoTs on target -function lib.ApplyDarkHarvestStart(targetGUID) - if not lib.objects[targetGUID] then return end - - local now = GetTime() - for spellID, rec in pairs(lib.objects[targetGUID]) do - if type(rec) == "table" and rec.duration and rec.start then - -- Only affect DoTs (debuffs with duration > 0 that tick) - -- Skip if already has dhStartTime (avoid double-tracking) - if not rec.dhStartTime then - rec.dhStartTime = now - rec.dhEndTime = nil -- Clear any previous end time - end - end - end - - if CleveRoids.debug then - DEFAULT_CHAT_FRAME:AddMessage( - string.format("|cff9482c9[Dark Harvest]|r Started accelerating DoTs on %s", - lib.guidToName[targetGUID] or "Unknown") - ) - end -end - --- Track Dark Harvest end for all DoTs on target -function lib.ApplyDarkHarvestEnd(targetGUID) - if not lib.objects[targetGUID] then return end - - local now = GetTime() - for spellID, rec in pairs(lib.objects[targetGUID]) do - if type(rec) == "table" and rec.dhStartTime and not rec.dhEndTime then - rec.dhEndTime = now - end - end -end - --- Get time remaining for a debuff, accounting for Dark Harvest acceleration -function lib.GetTimeRemainingWithDarkHarvest(rec) - if not rec or not rec.duration or not rec.start then - return 0 - end - - local baseRemaining = rec.duration + rec.start - GetTime() - local dhReduction = lib.GetDarkHarvestReduction(rec) - - return baseRemaining - dhReduction -end - -- Personal debuff pending tracking system -- Stores personal debuffs to be added after 0.5s delay (to verify they weren't dodged/parried/blocked) -- Format: { [index] = { timestamp = GetTime(), targetGUID = guid, targetName = name, spellID = id, duration = X, comboPoints = CP } } @@ -3715,31 +3647,6 @@ ev:SetScript("OnEvent", function() end end - -- WARLOCK DARK HARVEST: Track channeling for DoT acceleration (TWoW Custom) - -- Credits: Avitasia / Cursive addon - -- Dark Harvest accelerates DoT tick rate by 30% while channeling - if eventType == "CHANNEL" and CleveRoids.DarkHarvestSpellIDs and CleveRoids.DarkHarvestSpellIDs[spellID] then - -- Get channel duration from tooltip or use base duration (8 seconds) - local channelDuration = 8 -- Base Dark Harvest duration - - CleveRoids.darkHarvestData = { - targetGUID = targetGUID, - spellID = spellID, - startTime = GetTime(), - channelDuration = channelDuration, - isActive = true - } - - -- Apply Dark Harvest acceleration to all existing DoTs on target - lib.ApplyDarkHarvestStart(targetGUID) - - if CleveRoids.debug then - DEFAULT_CHAT_FRAME:AddMessage( - string.format("|cff9482c9[Dark Harvest]|r Started channeling on %s (DoTs will tick 30%% faster)", - lib.guidToName[targetGUID] or "Unknown") - ) - end - end end end @@ -4259,26 +4166,6 @@ ev:SetScript("OnEvent", function() end end - -- WARLOCK DARK HARVEST: Track channeling for DoT acceleration (TWoW Custom) - local spellType = arg8 - if spellType == 1 and CleveRoids.DarkHarvestSpellIDs and CleveRoids.DarkHarvestSpellIDs[spellID] then - local channelDuration = 8 -- Base Dark Harvest duration - CleveRoids.darkHarvestData = { - targetGUID = targetGuid, - spellID = spellID, - startTime = GetTime(), - channelDuration = channelDuration, - isActive = true - } - lib.ApplyDarkHarvestStart(targetGuid) - - if CleveRoids.debug then - DEFAULT_CHAT_FRAME:AddMessage( - _string_format("|cff9482c9[Dark Harvest]|r Started channeling on %s (DoTs will tick 30%% faster)", - lib.guidToName[targetGuid] or "Unknown") - ) - end - end end end