- error while compiling
Sidoine De Wispelaere [02-16-10 - 18:58]
- error while compiling
- use cast time while prioritizing spells
git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@228 d5049fe3-3747-40f7-a4b5-f36d6801af5f
diff --git a/Ovale.lua b/Ovale.lua
index 94f31f2..ea27ee5 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -251,7 +251,7 @@ local options =
end,
set = function(info,v)
Ovale.db.profile.code = v
- self.needCompile = true
+ Ovale.needCompile = true
-- Ovale:UpdateFrame()
-- Ovale:Print("code change")
end,
@@ -1160,7 +1160,7 @@ function Ovale:InitCalculerMeilleureAction()
print("changement de v.stop en "..v.stop.." "..v.start)
end]]
- if self.maintenant - v.stop<3 then
+ if self.maintenant - v.stop<5 then
self:AddSpellToStack(v.name, v.start, v.stop, v.stop, v.nocd)
end
end
@@ -1382,6 +1382,14 @@ function Ovale:CalculerMeilleureAction(element)
end
return nil
end
+ if spellName and self.spellInfo[spellName] and self.spellInfo[spellName].casttime then
+ element.castTime = self.spellInfo[spellName].casttime
+ elseif spellName then
+ local spell, rank, icon, cost, isFunnel, powerType, castTime = GetSpellInfo(spellName)
+ element.castTime = castTime
+ else
+ element.castTime = 0
+ end
if (spellName and self.spellInfo[spellName] and self.spellInfo[spellName].toggle and actionIsCurrent) then
if (Ovale.trace) then
self:Print("Action "..element.params[1].." is current action")
@@ -1590,6 +1598,7 @@ function Ovale:CalculerMeilleureAction(element)
local bestEnd
local meilleurePrioriteFils
local bestElement
+ local bestCastTime
if (Ovale.trace) then
self:Print(element.type.." ["..element.nodeId.."]")
@@ -1600,9 +1609,18 @@ function Ovale:CalculerMeilleureAction(element)
if newStart~=nil and newStart<Ovale.currentTime then
newStart = Ovale.currentTime
end
+
if newStart and (not newEnd or newStart<=newEnd) then
local remplacer
+
+ local newCastTime
+ if nouveauElement then
+ newCastTime = nouveauElement.castTime
+ end
+ if not newCastTime or newCastTime == 0 then
+ newCastTime = self.gcd
+ end
if (not meilleurTempsFils) then
remplacer = true
@@ -1616,12 +1634,12 @@ function Ovale:CalculerMeilleureAction(element)
end
if (priorite and priorite > meilleurePrioriteFils) then
-- Si le nouveau sort est plus prioritaire que le précédent, on le lance
- -- même si on doit attendre jusqu'à gcd secondes de plus
- maxEcart = self.gcd
+ -- si caster le sort actuel repousse le nouveau sort
+ maxEcart = bestCastTime*0.75
elseif (priorite and priorite < meilleurePrioriteFils) then
-- A l'inverse, si il est moins prioritaire que le précédent, on ne le lance
- -- que si il se lance au moins 1,5s avant
- maxEcart = -self.gcd*0.75
+ -- que caster le nouveau sort ne repousse pas le meilleur
+ maxEcart = -newCastTime*0.75
else
maxEcart = -0.01
end
@@ -1634,6 +1652,7 @@ function Ovale:CalculerMeilleureAction(element)
meilleurePrioriteFils = priorite
bestElement = nouveauElement
bestEnd = newEnd
+ bestCastTime = newCastTime
end
end
end
diff --git a/Ovale.toc b/Ovale.toc
index e3409f5..d3614f1 100644
--- a/Ovale.toc
+++ b/Ovale.toc
@@ -3,7 +3,7 @@
## Notes: Show the icon of the next spell to cast
## Notes-frFR: Affiche l'icône du prochain sort à lancer
## Author: Sidoine
-## Version: 3.3.23
+## Version: 3.3.24
## OptionalDeps: Ace3, ButtonFacade, Recount, LibBabble-CreatureType-3.0
## SavedVariables: OvaleDB
## SavedVariablesPerCharacter: OvaleDBPC