Quantcast

Fix for ticket 165.

Johnny C. Lam [09-21-12 - 14:03]
Fix for ticket 165.

Fix use of missing global 'duration' in OvaleCondition.lua.

Extend OvaleData:GetDuration() to also return the tick length for
efficiency.

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@538 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
OvaleCondition.lua
OvaleData.lua
diff --git a/OvaleCondition.lua b/OvaleCondition.lua
index 10a3f66..ac591f4 100644
--- a/OvaleCondition.lua
+++ b/OvaleCondition.lua
@@ -1258,19 +1258,18 @@ OvaleCondition.conditions=
 	-- Get the number of ticks of a DOT
 	-- 1: spell Id
 	-- return: bool or number
+	-- TODO: extend to allow checking an existing DoT (how to get DoT duration?)
 	ticks = function(condition)
 		local spellId = condition[1]
-		local si = OvaleData.spellInfo[spellId]
-		if si and si.duration then
-			local start, ending, _, spellHaste = GetTargetAura(condition, getTarget(condition.target))
-			if not start or not ending or start > OvaleState.currentTime or ending < OvaleState.currentTime then
-				spellHaste = OvaleAura.spellHaste
-			end
-			local tickLength = OvaleData:GetTickLength(spellId, spellHaste)
-			if tickLength then
-				local numTicks = floor(duration / tickLength + 0.5)
-				return compare(numTicks, condition[2], condition[3])
-			end
+		local duration, tickLength = OvaleData:GetDuration(spellId,
+		{
+			combo = Ovale.state.combo,
+			holy = Ovale.state.holy,
+			spellHaste = OvaleAura.spellHaste,
+		})
+		if tickLength then
+			local numTicks = floor(duration / tickLength + 0.5)
+			return compare(numTicks, condition[2], condition[3])
 		end
 		return nil
 	end,
diff --git a/OvaleData.lua b/OvaleData.lua
index 11bd2f4..f5c6b25 100644
--- a/OvaleData.lua
+++ b/OvaleData.lua
@@ -511,6 +511,7 @@ function OvaleData:GetDuration(spellId, state)
 			local tickLength = self:GetTickLength(spellId, spellHaste)
 			local numTicks = floor(duration / tickLength + 0.5)
 			duration = tickLength * numTicks
+			return duration, tickLength
 		end
 		return duration
 	else