diff --git a/Condition.lua b/Condition.lua
index 7a652f2..8207975 100644
--- a/Condition.lua
+++ b/Condition.lua
@@ -204,7 +204,7 @@ local function GetTargetAura(condition, filter, target)
stacks = 1
end
local spellId = condition[1]
- local aura = Ovale:GetAura(target, filter, spellId)
+ local aura = Ovale:GetAura(target, filter, spellId, condition.forceduration)
-- if Ovale.trace then
-- Ovale:Print("GetTargetAura = start = ".. nilstring(aura.start) .. " end = "..nilstring(aura.ending).." stacks = " ..nilstring(aura.stacks).."/"..stacks)
-- end
@@ -613,6 +613,10 @@ Ovale.conditions=
end
return compare(Ovale.pointsTalent[condition[1]], condition[2], condition[3])
end,
+ TargetDispellableBuffPresent = function(condition)
+
+ return nil
+ end,
-- Test if a buff is present on the target
-- 1 : buff spell id
-- stacks : how many stacks
diff --git a/Locale-enUS.lua b/Locale-enUS.lua
index 657ec91..d65b2fc 100644
--- a/Locale-enUS.lua
+++ b/Locale-enUS.lua
@@ -41,4 +41,5 @@ L["Prédictif"] = "Two abilities"
L["Affiche les deux prochains sorts et pas uniquement le suivant"] = "Display two abilities and not only one"
L["Défilement"] = "Scrolling"
L["Les icônes se déplacent"] = "Scroll the icons"
-L["multidot"] = "Damage Over Time on multiple targets"
\ No newline at end of file
+L["multidot"] = "Damage Over Time on multiple targets"
+L["buff"] = "Buffs"
\ No newline at end of file
diff --git a/Locale-frFR.lua b/Locale-frFR.lua
index 3c6e826..629af7b 100644
--- a/Locale-frFR.lua
+++ b/Locale-frFR.lua
@@ -41,4 +41,5 @@ L["Prédictif"] = "Deux sorts"
L["Affiche les deux prochains sorts et pas uniquement le suivant"] = true
L["Défilement"] = true
L["Les icônes se déplacent"] = true
-L["multidot"] = "Multicible pour DoTs"
\ No newline at end of file
+L["multidot"] = "Multicible pour DoTs"
+L["buff"] = "Améliorations"
\ No newline at end of file
diff --git a/Ovale.lua b/Ovale.lua
index ef7209b..fbc8b13 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -782,7 +782,7 @@ function Ovale:AddRune(time, type, value)
end
end
-function Ovale:GetAura(target, filter, spellId)
+function Ovale:GetAura(target, filter, spellId, forceduration)
if not self.aura[target] then
self.aura[target] = {}
end
@@ -815,8 +815,12 @@ function Ovale:GetAura(target, filter, spellId)
myAura.mine = (unitCaster == "player")
myAura.start = expirationTime - duration
- if self.spellInfo[name] and self.spellInfo[name].forceduration then
- duration = self.spellInfo[name].duration
+ if self.spellInfo[name] and forceduration then
+ if self.spellInfo[name].duration then
+ duration = self.spellInfo[name].duration
+ else
+ duration = forceduration
+ end
end
if expirationTime>0 then
@@ -1281,17 +1285,32 @@ function Ovale:CalculerMeilleureAction(element)
local tempsA = Ovale:CalculerMeilleureAction(element.a)
if (tempsA==nil) then
if Ovale.trace then Ovale:Print(element.type.." return nil") end
- return nil
+ if element.comparison == "more" then
+ return 0
+ else
+ return nil
+ end
end
local tempsB = Ovale:CalculerMeilleureAction(element.b)
if (tempsB==nil) then
if Ovale.trace then Ovale:Print(element.type.." return nil") end
- return nil
+ if element.comparison == "more" then
+ return 0
+ else
+ return nil
+ end
end
- if (tempsA>tempsB and tempsA-tempsB<element.time) then
+ local diff
+ if tempsA>tempsB then
+ diff = tempsA - tempsB
+ else
+ diff = tempsB - tempsA
+ end
+
+ if element.comparison == "more" and diff>element.time then
if Ovale.trace then Ovale:Print(element.type.." return 0") end
return 0
- elseif (tempsB>tempsA and tempsB-tempsA<element.time) then
+ elseif element.comparison == "less" and diff<element.time then
if Ovale.trace then Ovale:Print(element.type.." return 0") end
return 0
end
diff --git a/Ovale.toc b/Ovale.toc
index 2835845..4c60db9 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.6
+## Version: 3.3.7
## OptionalDeps: Ace3, ButtonFacade, Recount
## SavedVariables: OvaleDB
## SavedVariablesPerCharacter: OvaleDBPC
diff --git a/OvaleCompile.lua b/OvaleCompile.lua
index 795303d..2c9af07 100644
--- a/OvaleCompile.lua
+++ b/OvaleCompile.lua
@@ -143,8 +143,8 @@ local function ParseBefore(a,b)
return AddNode(newNode)
end
-local function ParseBetween(t,a,b)
- local newNode = {type="between", time=tonumber(t), a=node[tonumber(a)], b=node[tonumber(b)]}
+local function ParseBetween(comp,t,a,b)
+ local newNode = {type="between", comparison=comp, time=tonumber(t), a=node[tonumber(a)], b=node[tonumber(b)]}
return AddNode(newNode)
end
@@ -211,7 +211,7 @@ local function ParseAddIcon(params, text)
while (1==1) do
local was = text
text = string.gsub(text, "(%w+)%s*%((.-)%)", ParseFunction)
- text = string.gsub(text, "(%d+%.?%d*)s%s+between%s+node(%d+)%s+and%s+node(%d+)", ParseBetween)
+ text = string.gsub(text, "([lesmor]+)%s+than%s+(%d+%.?%d*)s%s+between%s+node(%d+)%s+and%s+node(%d+)", ParseBetween)
text = string.gsub(text, "node(%d+)%s+and%s+node(%d+)", ParseAnd)
text = string.gsub(text, "node(%d+)%s+or%s+node(%d+)", ParseOr)
text = string.gsub(text, "(%d+%.?%d*)s%s+before%s+node(%d+)", ParseBefore)
diff --git a/defaut/Druide.lua b/defaut/Druide.lua
index 36d9381..5cda8ee 100644
--- a/defaut/Druide.lua
+++ b/defaut/Druide.lua
@@ -59,7 +59,7 @@ SpellInfo(SHRED combo=1)
SpellInfo(SAVAGEROAR combo=-5)
SpellInfo(RIP combo=-5 duration=12)
SpellInfo(FEROCIOUSBITE combo=-5)
-SpellInfo(RIP glyph=GLYPHOFSHRED forceduration=1 addduration=6)
+SpellInfo(RIP glyph=GLYPHOFSHRED addduration=6)
SpellInfo(RIP glyph=GLYPHOFRIP addduration=4)
AddIcon help=main