diff --git a/Locale-enUS.lua b/Locale-enUS.lua
index 8a761d3..3905f5b 100644
--- a/Locale-enUS.lua
+++ b/Locale-enUS.lua
@@ -43,4 +43,5 @@ L["Défilement"] = "Scrolling"
L["Les icônes se déplacent"] = "Scroll the icons"
L["multidot"] = "Damage Over Time on multiple targets"
L["buff"] = "Buffs"
-L["Inverser la boîte à cocher "] = "Toggle check box"
\ No newline at end of file
+L["Inverser la boîte à cocher "] = "Toggle check box"
+L["Ignorer les clics souris"] = "Ignore mouse clicks"
\ No newline at end of file
diff --git a/Locale-frFR.lua b/Locale-frFR.lua
index 9e724cb..a1bdcbd 100644
--- a/Locale-frFR.lua
+++ b/Locale-frFR.lua
@@ -43,4 +43,5 @@ L["Défilement"] = true
L["Les icônes se déplacent"] = true
L["multidot"] = "Multicible pour DoTs"
L["buff"] = "Améliorations"
-L["Inverser la boîte à cocher "] = true
\ No newline at end of file
+L["Inverser la boîte à cocher "] = true
+L["Ignorer les clics souris"] = true
\ No newline at end of file
diff --git a/Ovale.lua b/Ovale.lua
index 2b551af..9e3a441 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -36,8 +36,7 @@ Ovale.score = 0
Ovale.maxScore = 0
Ovale.serial = 0
Ovale.counter = {}
-Ovale.lastSpellName = nil
-Ovale.lastSpellTime = 0
+Ovale.lastSpell = {}
Ovale.arbre = {}
@@ -217,6 +216,14 @@ local options =
get = function(info) return Ovale.db.profile.apparence.highlightIcon end,
set = function(info, value) Ovale.db.profile.apparence.highlightIcon = value; Ovale:UpdateFrame() end
},
+ clickThru =
+ {
+ order = 15,
+ type = "toggle",
+ name = L["Ignorer les clics souris"],
+ get = function(info) return Ovale.db.profile.apparence.clickThru end,
+ set = function(info, value) Ovale.db.profile.apparence.clickThru = value; Ovale:UpdateFrame() end
+ }
}
},
code =
@@ -361,8 +368,12 @@ function Ovale:COMBAT_LOG_EVENT_UNFILTERED(event, ...)
if sourceName == UnitName("player") then
if string.find(event, "SPELL_") == 1 then
local spellId, spellName = select(9, ...)
- if spellName == self.lastSpellName then
- self.lastSpellName = nil
+ for i,v in ipairs(self.lastSpell) do
+ if v.name == spellName then
+ self:Print("on supprime " ..spellName.." a "..time)
+ table.remove(self.lastSpell, i)
+ break
+ end
end
end
if string.find(event, "SPELL_AURA_") == 1 then
@@ -587,8 +598,18 @@ end
function Ovale:UNIT_SPELLCAST_SENT(event,unit,name,rank,target)
-- self:Print("UNIT_SPELLCAST_SENT"..event.." unit="..unit.." name="..name.." tank="..rank.." target="..target)
if unit=="player" then
- self.lastSpellName = name
- self.lastSpellTime = GetTime()
+ local newSpell = {}
+ newSpell.name = name
+ newSpell.time = GetTime()
+ local si = self.spellInfo[name]
+
+ if si and si.buffnocd and UnitBuff("player", GetSpellInfo(si.buffnocd)) then
+ newSpell.nocd = true
+ else
+ newSpell.nocd = false
+ end
+ self.lastSpell[#self.lastSpell+1] = newSpell
+-- self:Print("on ajoute "..name.." a ".. GetTime())
end
if unit=="player" and self.enCombat then
@@ -920,7 +941,15 @@ function Ovale:GetCD(spellName)
end
end
-function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast)
+local function nilstring(text)
+ if text == nil then
+ return "nil"
+ else
+ return text
+ end
+end
+
+function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast, nocd)
-- self.spellStack.length = self.spellStack.length + 1
-- if not self.spellStack[self.spellStack.length] then
-- self.spellStack[self.spellStack.length] = {}
@@ -984,6 +1013,24 @@ function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast)
if cd then
cd.start = startCast
cd.duration = newSpellInfo.cd
+ if nocd then
+ cd.duration = 0
+ end
+ if newSpellInfo.buffnocd and not nocd then
+ local buffAura = self:GetAura("player", "HELPFUL", newSpellInfo.buffnocd)
+ if self.traceAura then
+ if buffAura then
+ self:Print("buffAura stacks = "..buffAura.stacks.." start="..nilstring(buffAura.start).." ending = "..nilstring(buffAura.ending))
+ self:Print("startCast = "..startCast)
+ else
+ self:Print("buffAura = nil")
+ end
+ self.traceAura = false
+ end
+ if buffAura and buffAura.stacks>0 and buffAura.start and buffAura.start<=startCast and (not buffAura.ending or buffAura.ending>startCast) then
+ cd.duration = 0
+ end
+ end
cd.enable = 1
if newSpellInfo.toggle then
cd.toggled = 1
@@ -1016,7 +1063,11 @@ function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast)
newAura.stacks = 1
end
if Ovale.trace then
- self:Print("adding aura "..spellName.." to "..target.." "..newAura.start..","..newAura.ending)
+ if spellName then
+ self:Print("adding aura "..spellName.." to "..target.." "..newAura.start..","..newAura.ending)
+ else
+ self:Print("adding nil aura")
+ end
end
end
end
@@ -1059,6 +1110,13 @@ function Ovale:InitCalculerMeilleureAction()
v.toggled = nil
end
+ for i,v in ipairs(self.lastSpell) do
+ if not self.spellInfo[v.name] or not self.spellInfo[v.name].toggle then
+ if self.maintenant - v.time<1 then
+ self:AddSpellToStack(v.name, v.time, v.time, v.time, v.nocd)
+ end
+ end
+ end
-- On attend que le sort courant soit fini
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo("player")
if (spell) then
@@ -1067,12 +1125,6 @@ function Ovale:InitCalculerMeilleureAction()
local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitChannelInfo("player")
if (spell) then
self:AddSpellToStack(spell, startTime/1000, endTime/1000, endTime/1000)
- elseif self.lastSpellName then
- if not self.spellInfo[self.lastSpellName] or not self.spellInfo[self.lastSpellName].toggle then
- if self.lastSpellName and self.maintenant - self.lastSpellTime<1 then
- self:AddSpellToStack(self.lastSpellName, self.lastSpellTime, self.lastSpellTime, self.lastSpellTime)
- end
- end
end
end
end
@@ -1118,13 +1170,6 @@ function Ovale:GetGCD(spellName)
end
-local function nilstring(text)
- if text == nil then
- return "nil"
- else
- return text
- end
-end
function Ovale:GetActionInfo(element)
if not element then
@@ -1558,7 +1603,7 @@ function Ovale:ChargerDefaut()
list = {},
apparence = {enCombat=false, iconWidth = 64, iconHeight = 64, margin = 4,
smallIconWidth=28, smallIconHeight=28, raccourcis=true, numeric=false, avecCible = false,
- verrouille = false, vertical = false, predictif=false, highlightIcon = true},
+ verrouille = false, vertical = false, predictif=false, highlightIcon = true, clickThru = false},
skin = {SkinID="Blizzard", Backdrop = true, Gloss = false, Colors = {}}
}
})
diff --git a/OvaleFrame.lua b/OvaleFrame.lua
index 3d00741..71c47e9 100644
--- a/OvaleFrame.lua
+++ b/OvaleFrame.lua
@@ -235,6 +235,8 @@ do
end
end
+ self.frame:EnableMouse(not Ovale.db.profile.apparence.clickThru)
+
local left = 0
local maxHeight = 0
local maxWidth = 0
@@ -296,6 +298,7 @@ do
icon:SetPoint("TOPLEFT",self.frame,"TOPLEFT",action.left + (l-1)*action.dx,action.top - (l-1)*action.dy)
icon:SetSize(action.width, action.height)
icon:SetHelp(node.params.help)
+ icon:EnableMouse(not Ovale.db.profile.apparence.clickThru)
if LBF then
icon:SetSkinGroup(self.skinGroup)
@@ -356,7 +359,9 @@ do
frame:SetWidth(100)
frame:SetHeight(100)
frame:SetPoint("CENTER",UIParent,"CENTER",0,0)
- frame:EnableMouse()
+ if not Ovale.db.profile.apparence.clickThru then
+ frame:EnableMouse()
+ end
frame:SetMovable(true)
frame:SetFrameStrata("BACKGROUND")
frame:SetScript("OnMouseDown", frameOnMouseDown)
diff --git a/OvaleIcone.lua b/OvaleIcone.lua
index b1770ad..72423c7 100644
--- a/OvaleIcone.lua
+++ b/OvaleIcone.lua
@@ -202,4 +202,8 @@ function OvaleIcone_OnLoad(self)
self.Update = Update
self.SetSize = SetSize
self.SetHelp = SetHelp
+ if Ovale.db.profile.clickThru then
+ self:EnableMouse(false)
+ end
end
+
diff --git a/defaut/Chasseur.lua b/defaut/Chasseur.lua
index be99ce6..2808920 100644
--- a/defaut/Chasseur.lua
+++ b/defaut/Chasseur.lua
@@ -19,6 +19,8 @@ Define(CALLOFTHEWILD 53434)
Define(CHIMERASHOT 53209)
Define(READINESS 23989)
Define(SILENCINGSHOT 34490)
+Define(ASPECTOFTHEVIPER 34074)
+Define(ASPECTOFTHEDRAGONHAWK 61846)
Define(TALENTTRACKING 1623)
Define(TRACKBEASTS 1494)
@@ -30,7 +32,8 @@ Define(TRACKHUMANOIDS 19883)
Define(TRACKUNDEAD 19884)
SpellAddTargetDebuff(EXPLOSIVESHOT EXPLOSIVESHOT=2)
-SpellInfo(EXPLOSIVESHOT cd=6)
+SpellAddBuff(EXPLOSIVESHOT LOCKANDLOAD=-1)
+SpellInfo(EXPLOSIVESHOT cd=6 buffnocd=LOCKANDLOAD)
SpellAddTargetDebuff(SERPENTSTING SERPENTSTING=15)
SpellAddTargetDebuff(BLACKARROW BLACKARROW=15)
SpellInfo(BLACKARROW cd=26)
@@ -48,6 +51,7 @@ ScoreSpells(HUNTERSMARK BLACKARROW SERPENTSTING CHIMERASHOT AIMEDSHOT MULTISHOT
AddIcon help=main
{
+ if ManaPercent(more 95) and BuffPresent(ASPECTOFTHEVIPER) Spell(ASPECTOFTHEDRAGONHAWK)
if TalentPoints(TALENTTRACKING more 0) and Tracking(TRACKBEASTS no) and Tracking(TRACKDEMONS no) and Tracking(TRACKDRAGONKIN no)
and Tracking(TRACKELEMENTALS no) and Tracking(TRACKGIANTS no) and Tracking(TRACKHUMANOIDS no) and Tracking(TRACKUNDEAD no)
Spell(TRACKBEASTS)
diff --git a/defaut/Chevalier.lua b/defaut/Chevalier.lua
index 2450ff6..78f3087 100644
--- a/defaut/Chevalier.lua
+++ b/defaut/Chevalier.lua
@@ -94,7 +94,7 @@ AddIcon help=main
if TargetDebuffExpires(FROSTFEVER 0 mine=1) and Runes(frost 1)
{
if Glyph(GLYPHHOWLINGBLAST) Spell(HOWLINGBLAST)
- Spell(ICYTOUCH)
+ unless Glyph(GLYPHHOWLINGBLAST) Spell(ICYTOUCH)
}
if TargetDebuffExpires(BLOODPLAGUE 0 mine=1) and Runes(unholy 1)
diff --git a/defaut/Demoniste.lua b/defaut/Demoniste.lua
index aa9c8a7..27c9e77 100644
--- a/defaut/Demoniste.lua
+++ b/defaut/Demoniste.lua
@@ -44,6 +44,7 @@ AddListItem(curse weakness SpellName(CURSEWEAKNESS))
SpellInfo(HAUNT cd=8)
SpellInfo(CONFLAGRATE cd=10)
SpellInfo(CHAOSBOLT cd=12)
+SpellInfo(DRAINSOUL canStopChannelling=3)
SpellAddTargetDebuff(CORRUPTION CORRUPTION=18)
SpellAddTargetDebuff(CURSEAGONY CURSEAGONY=24)
SpellAddTargetDebuff(CURSEELEMENTS CURSEELEMENTS=300)
diff --git a/defaut/Pretre.lua b/defaut/Pretre.lua
index 52a3751..6cb005d 100644
--- a/defaut/Pretre.lua
+++ b/defaut/Pretre.lua
@@ -64,11 +64,8 @@ if BuffPresent(SW stacks=5) and TargetDebuffExpires(SWP 0 mine=1) and TargetDead
}
#Refresh VT
-unless CheckBoxOn(multidot)
-{
- if TargetDebuffExpires(VT 1 mine=1 haste=spell) and TargetDeadIn(more 8)
- Spell(VT)
-}
+if TargetDebuffExpires(VT 1 mine=1 haste=spell) and TargetDeadIn(more 8)
+ Spell(VT)
#cast MB if up
unless BuffPresent(Heroism) or BuffPresent(Bloodlust)