From 9501db4cc28c6ba83fb904d7dce111982847f717 Mon Sep 17 00:00:00 2001 From: Sidoine De Wispelaere Date: Tue, 16 Feb 2010 18:58:11 +0000 Subject: [PATCH] - 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 --- Ovale.lua | 31 +++++++++++++++++++++++++------ Ovale.toc | 2 +- 2 files changed, 26 insertions(+), 7 deletions(-) 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 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 -- 1.7.9.5