diff --git a/Condition.lua b/Condition.lua
index 48ae8da..433dc17 100644
--- a/Condition.lua
+++ b/Condition.lua
@@ -270,6 +270,9 @@ local function getTargetDead()
savedHealth = {}
end
local newHealth = UnitHealth("target")
+ if UnitHealthMax("target")==1 then
+ return Ovale.maintenant + 10000
+ end
if second~=lastSaved and targetGUID then
lastSaved = second
local mod10 = second % 10
@@ -516,26 +519,37 @@ Ovale.conditions=
end
end
if not minTime then
- return 0
+ return nil
end
minTime = minTime - timeBefore
return minTime
end
- return 0
+ return nil
end,
OtherDebuffPresent = function(condition)
Ovale:EnableOtherDebuffs()
local otherDebuff = Ovale.otherDebuffs[GetSpellInfo(condition[1])]
if otherDebuff then
+ -- print("otherDebuff")
local maxTime = 0
+ local suppTime = condition[3] or 10
for target,expireTime in pairs(otherDebuff) do
+ -- print("target "..target.. " "..expireTime)
if target~=UnitGUID("target") then
- if expireTime > maxTime then
+ if Ovale.maintenant - suppTime > expireTime then
+ otherDebuff[target] = nil
+ elseif expireTime > maxTime then
maxTime = expireTime
end
end
end
- return 0, addTime(maxTime, -condition[2])
+ -- print("maxTime final "..maxTime)
+ if maxTime>0 then
+ local timeBefore = condition[2] or 0
+ return 0, addTime(maxTime, -timeBefore)
+ else
+ return nil
+ end
end
return nil
end,
@@ -711,18 +725,13 @@ Ovale.conditions=
end,
TotemExpires = function(condition)
local haveTotem, totemName, startTime, duration = GetTotemInfo(totemType[condition[1]])
- if (totemName==nil) then
+ if not startTime then
return 0
end
if (condition.totem and Ovale:GetSpellInfoOrNil(condition.totem)~=totemName) then
return 0
end
- local timeLeft = duration - (Ovale.maintenant - startTime)
- if (condition[2] and timeLeft<condition[2]) then
- return 0
- else
- return timeLeft
- end
+ return addTime(startTime + duration, -(condition[2] or 0))
end,
Tracking = function(condition)
local what = Ovale:GetSpellInfoOrNil(condition[1])
diff --git a/Locale-enUS.lua b/Locale-enUS.lua
index 34e2c5d..657ec91 100644
--- a/Locale-enUS.lua
+++ b/Locale-enUS.lua
@@ -40,4 +40,5 @@ L["Illuminer l'icône quand la technique doit être spammée"] = "Hightlight ico
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"
\ No newline at end of file
+L["Les icônes se déplacent"] = "Scroll the icons"
+L["multidot"] = "Damage Over Time on multiple targets"
\ No newline at end of file
diff --git a/Locale-frFR.lua b/Locale-frFR.lua
index 9f17e35..3c6e826 100644
--- a/Locale-frFR.lua
+++ b/Locale-frFR.lua
@@ -40,4 +40,5 @@ L["Illuminer l'icône quand la technique doit être spammée"] = true
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
\ No newline at end of file
+L["Les icônes se déplacent"] = true
+L["multidot"] = "Multicible pour DoTs"
\ No newline at end of file
diff --git a/Ovale.lua b/Ovale.lua
index e14697b..48313f4 100644
--- a/Ovale.lua
+++ b/Ovale.lua
@@ -231,7 +231,15 @@ local options =
-- Ovale:Print("code change")
end,
width = "full"
- },
+ }
+ }
+ },
+ actions =
+ {
+ name = "Actions",
+ type = "group",
+ args =
+ {
show =
{
order = -1,
@@ -316,10 +324,10 @@ function Ovale:COMBAT_LOG_EVENT_UNFILTERED(event, ...)
local otherDebuff = self:GetOtherDebuffs(spellName)
if event == "SPELL_AURA_APPLIED" or event == "SPELL_AURA_REFRESH" then
otherDebuff[destGUID] = Ovale.maintenant + self.spellInfo[spellName].duration
- -- self:Print("ajout de "..spellName.." à "..destGUID)
+ self:Print("ajout de "..spellName.." à "..destGUID)
elseif event == "SPELL_AURA_REMOVED" then
- -- otherDebuff[destGUID] = nil
- -- self:Print("suppression de "..spellName.." de "..destGUID)
+ otherDebuff[destGUID] = nil
+ self:Print("suppression de "..spellName.." de "..destGUID)
end
end
end
@@ -478,7 +486,8 @@ function Ovale:FirstInit()
options.args.profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db)
- self.AceConfig:RegisterOptionsTable("Ovale", options.args.code, "Ovale")
+ self.AceConfig:RegisterOptionsTable("Ovale", options.args.code)
+ self.AceConfig:RegisterOptionsTable("Ovale Actions", options.args.actions, "Ovale")
self.AceConfig:RegisterOptionsTable("Ovale Profile", options.args.profile)
self.AceConfig:RegisterOptionsTable("Ovale Apparence", options.args.apparence)
@@ -847,10 +856,12 @@ function Ovale:AddSpellToStack(spellName, startCast, endCast, nextCast)
-- end
local newSpellInfo = nil
- if spellName then
- newSpellInfo = self.spellInfo[spellName]
+ if not spellName then
+ return
end
-
+
+ newSpellInfo = self.spellInfo[spellName]
+
if startCast>Ovale.maintenant then
local _, _, _, cost = GetSpellInfo(spellName)
self.state.mana = self.state.mana - cost
diff --git a/Ovale.toc b/Ovale.toc
index de199a6..38ff5b3 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.2
+## Version: 3.3.3
## OptionalDeps: Ace3, ButtonFacade, Recount
## SavedVariables: OvaleDB
## SavedVariablesPerCharacter: OvaleDBPC
diff --git a/OvaleFrame.lua b/OvaleFrame.lua
index 56ccf45..cba471e 100644
--- a/OvaleFrame.lua
+++ b/OvaleFrame.lua
@@ -385,7 +385,7 @@ do
self.skinGroup.SkinID = Ovale.db.profile.SkinID
self.skinGroup.Gloss = Ovale.db.profile.Gloss
self.skinGroup.Backdrop = Ovale.db.profile.Backdrop
- self.skinGroup.Colors = Ovale.db.profile.Colors
+ self.skinGroup.Colors = Ovale.db.profile.Colors or {}
LBF:RegisterSkinCallback("Ovale", self.OnSkinChanged, self)
end
diff --git a/OvaleIcone.lua b/OvaleIcone.lua
index c9745ee..c4c2c38 100644
--- a/OvaleIcone.lua
+++ b/OvaleIcone.lua
@@ -85,6 +85,7 @@ local function Update(self, minAttente, actionTexture, actionInRange, actionCool
self.shortcut:SetText(actionShortcut)
else
self.shortcut:Hide()
+ self.shortcut:SetText("")
end
-- L'indicateur de portée
diff --git a/defaut/Chaman.lua b/defaut/Chaman.lua
index 3cf5b5f..1f58a07 100644
--- a/defaut/Chaman.lua
+++ b/defaut/Chaman.lua
@@ -73,6 +73,7 @@ ScoreSpells(WATERSHIELD FLAMESHOCK LAVABURST CHAINLIGHTNING LIGHTNINGBOLT LAVALA
SpellInfo(EARTHSHOCK cd=6 sharedcd=shock)
SpellInfo(FLAMESHOCK cd=6 sharedcd=shock)
SpellAddBuff(LIGHTNINGSHIELD LIGHTNINGSHIELD=600)
+SpellAddBuff(WATERSHIELD WATERSHIELD=600)
SpellInfo(LAVALASH cd=6)
SpellInfo(STORMSTRIKE cd=8)
diff --git a/defaut/Chevalier.lua b/defaut/Chevalier.lua
index 9ae9d30..cc332c6 100644
--- a/defaut/Chevalier.lua
+++ b/defaut/Chevalier.lua
@@ -71,10 +71,12 @@ AddIcon help=main
Spell(BLOODSTRIKE)
}
}
+ if Runes(unholy 1) and Runes(frost 1)
+ Spell(SCOURGESTRIKE)
+
if Runes(unholy 1 nodeath=1) and Runes(frost 1 nodeath=1)
{
if TalentPoints(TALENTDEATSTRIKE more 0) Spell(DEATHSTRIKE)
- Spell(SCOURGESTRIKE)
Spell(OBLITERATE)
Spell(DEATHSTRIKE)
}
@@ -116,7 +118,7 @@ AddIcon help=aoe
AddIcon help=cd
{
- Spell(BONESHIELD)
+ unless BuffPresent(BONESHIELD) Spell(BONESHIELD)
if BuffPresent(FROSTPRESENCE)
{
Spell(UNBREAKABLEARMOR)
diff --git a/defaut/Druide.lua b/defaut/Druide.lua
index 96c43f7..4075542 100644
--- a/defaut/Druide.lua
+++ b/defaut/Druide.lua
@@ -25,6 +25,7 @@ Define(BERSERK 50334)
Define(CLEARCASTING 16870)
Define(CLAW 16827)
Define(STARFALL 48505)
+Define(TRAUMA 46856)
AddCheckBox(multi L(AOE))
AddCheckBox(mangle SpellName(MANGLECAT) default)
@@ -83,35 +84,34 @@ AddIcon help=main
if CheckBoxOn(lucioles) and TargetDebuffExpires(FAERIEFERAL 2) and TargetDeadIn(more 15)
Spell(FAERIEFERAL)
- if ComboPoints(more 4) and Mana(more 70)
- {
- if BuffExpires(SAVAGEROAR 5) Spell(SAVAGEROAR)
- if TargetDebuffExpires(RIP 0 mine=1) and TargetDeadIn(more 7) Spell(RIP)
- }
-
- if {3s between BuffExpires(SAVAGEROAR 0) and TargetDebuffExpires(RIP 0)} and ComboPoints(more 2)
- Spell(SAVAGEROAR)
+ unless BuffPresent(BERSERK) if Mana(less 40) Spell(TIGERSFURY)
+
+ if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) Spell(SAVAGEROAR)
- if ComboPoints(less 5)
+ if ComboPoints(more 4)
{
- if Mana(less 30) Spell(TIGERSFURY)
- if TargetDebuffExpires(MANGLECAT 0 mine=1) and CheckBoxOn(mangle)
- Spell(MANGLECAT)
- if TargetDebuffExpires(RAKE 0 mine=1) and Mana(more 34)
- Spell(RAKE)
- if Mana(more 42) and CheckBoxOn(shred) Spell(SHRED)
+ if BuffExpires(SAVAGEROAR 6) and Mana(more 70) and TargetDebuffPresent(RIP 5 mine=1) Spell(SAVAGEROAR)
+ if TargetDebuffExpires(RIP 0 mine=1) and TargetDeadIn(more 6) Spell(RIP)
+
+ if Mana(more 34)
+ {
+ unless BuffPresent(BERSERK) and {BuffExpires(SAVAGEROAR 8) or TargetDebuffExpires(RIP 10 mine=1)}
+ Spell(FEROCIOUSBITE)
+ if TargetDeadIn(less 7)
+ Spell(FEROCIOUSBITE)
+ }
}
-
- if BuffPresent(CLEARCASTING) and CheckBoxOn(shred) Spell(SHRED)
- if ComboPoints(more 4) and Mana(more 34)
+ if TargetDebuffExpires(MANGLECAT 0) and TargetDebuffExpires(MANGLEBEAR 0) and TargetDebuffExpires(TRAUMA 0) and CheckBoxOn(mangle)
+ Spell(MANGLECAT)
+ if TargetDebuffExpires(RAKE 0 mine=1) and Mana(more 34) and TargetDeadIn(more 10)
+ Spell(RAKE)
+
+ if CheckBoxOn(shred)
{
- unless BuffExpires(SAVAGEROAR 8) or TargetDebuffExpires(RIP 8 mine=1)
- Spell(FEROCIOUSBITE)
- if TargetDeadIn(less 7)
- Spell(FEROCIOUSBITE)
- if Mana(more 90) and CheckBoxOn(shred)
- Spell(SHRED)
+ if Mana(more 69) or BuffPresent(CLEARCASTING) or TargetDeadIn(less 10) or BuffPresent(BERSERK)
+ Spell(SHRED)
+ if ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1) Spell(SHRED)
}
}
diff --git a/defaut/Pretre.lua b/defaut/Pretre.lua
index 5b7b733..be66904 100644
--- a/defaut/Pretre.lua
+++ b/defaut/Pretre.lua
@@ -14,11 +14,14 @@ Define(Focus 14751) # Inner Focus
Define(Dispersion 47585)
Define(Shadowfiend 34433)
+AddCheckBox(multidot L(multidot))
+
# Spells with cast time that add buff or debuff
SpellAddTargetDebuff(SWP SWP=18)
SpellInfo(SWP duration=18)
SpellAddBuff(SWP SW=15)
SpellAddTargetDebuff(VT VT=15)
+SpellInfo(VT duration=15)
SpellAddBuff(VT SW=15)
SpellInfo(MF canStopChannelling=3)
SpellAddBuff(MF SW=15)
@@ -26,6 +29,7 @@ SpellInfo(MB cd=5.5)
SpellAddBuff(MB SW=15)
SpellAddBuff(IF IF=1800)
SpellAddTargetDebuff(DP DP=24)
+SpellInfo(DP duration=24)
SpellInfo(Focus cd=180)
SpellInfo(Dispersion cd=120)
SpellInfo(Shadowfiend cd=300)
@@ -55,17 +59,23 @@ if BuffPresent(SW stacks=5) and TargetDebuffExpires(SWP 0 mine=1) and TargetDead
}
#Refresh VT
-if TargetDebuffExpires(VT 1.4 mine=1 haste=spell) and TargetDeadIn(more 8)
- Spell(VT)
+unless CheckBoxOn(multidot) and OtherDebuffPresent(VT)
+{
+ if TargetDebuffExpires(VT 1.4 mine=1 haste=spell) and TargetDeadIn(more 8)
+ Spell(VT)
+}
#cast MB if up
Spell(MB)
#Refresh devouring plague
-if TargetDebuffExpires(DP 0 mine=1) and TargetDeadIn(more 8)
- Spell(DP)
+unless CheckBoxOn(multidot) and OtherDebuffPresent(DP)
+{
+ if TargetDebuffExpires(DP 0 mine=1) and TargetDeadIn(more 8)
+ Spell(DP)
+}
-if OtherDebuffExpires(SWP)
+if CheckBoxOn(multidot) and OtherDebuffExpires(SWP)
Texture(INV_Misc_Coin_01)
#cast Mind flay if nothing else can be done