From 095ef0c91169521a6a9455af87527f32f7947933 Mon Sep 17 00:00:00 2001 From: Sidoine De Wispelaere Date: Sun, 18 Sep 2011 13:45:44 +0000 Subject: [PATCH] various fixes for default scripts added spell list, harmful, and helpful parameters to IsCasting added remainingCastTime value added second icon scale option git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@419 d5049fe3-3747-40f7-a4b5-f36d6801af5f --- Condition.lua | 26 +++++++- Ovale.lua | 16 ++++- OvaleFrame.lua | 8 ++- defaut/Chasseur.lua | 2 +- defaut/Druide.lua | 36 ++++++----- defaut/Guerrier.lua | 4 +- defaut/Pretre.lua | 166 ++++++++++++++++++++++++--------------------------- defaut/Voleur.lua | 13 +++- 8 files changed, 155 insertions(+), 116 deletions(-) diff --git a/Condition.lua b/Condition.lua index 585dff3..5030548 100644 --- a/Condition.lua +++ b/Condition.lua @@ -630,9 +630,26 @@ Ovale.conditions= local spellId = condition.spell if not spellId then return testbool(UnitCastingInfo(target) or UnitChannelInfo(target), condition[1]) - else + elseif type(spellId) == "number" then local spellName = GetSpellInfo(spellId) return testbool(UnitCastingInfo(target)==spellName or UnitChannelInfo(target) == spellName, condition[1]) + elseif Ovale.buffSpellList[spellId] then + local castSpellName = UnitCastingInfo(target) or UnitChannelInfo(target) + local found = false + for k,v in pairs(Ovale.buffSpellList[spellId]) do + local spellName = GetSpellInfo(v) + if spellName == castSpellName then + found = true + break + end + end + return testbool(found, condition[1]) + elseif spellId == "harmful" then + local castSpellName = UnitCastingInfo(target) or UnitChannelInfo(target) + return testbool(castSpellName and IsHarmfulSpell(castSpellName), condition[1]) + elseif spellId == "helpful" then + local castSpellName = UnitCastingInfo(target) or UnitChannelInfo(target) + return testbool(castSpellName and IsHelpfulSpell(castSpellName), condition[1]) end end, IsFeared = function(condition) @@ -896,6 +913,13 @@ Ovale.conditions= return compare(difference, condition[1], condition[2]) end, + remainingCastTime = function(condition) + local name, nameSubtext, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible = UnitCastingInfo(getTarget(condition.target)) + if not endTime then + return nil + end + return 0, endTime/1000, -1 + end, SoulShards = function(condition) return compare(Ovale.state.shard, condition[1], condition[2]) end, diff --git a/Ovale.lua b/Ovale.lua index 221c838..42bcd87 100644 --- a/Ovale.lua +++ b/Ovale.lua @@ -210,6 +210,9 @@ Ovale.buffSpellList = 12880, -- Enrage (rank 1) 14201, -- Enrage (rank 2) 14202, -- Enrage (rank 3) + 5229, -- Enrage (Bear) + 52610, -- Savage Roar (Cat) + 76691, -- Vengeance (All Tank Specs) } } @@ -272,6 +275,15 @@ local options = get = function(info) return Ovale.db.profile.apparence.iconScale end, set = function(info,value) Ovale.db.profile.apparence.iconScale = value; Ovale:UpdateFrame() end }, + secondIconScale = + { + order = 2.5, + type = "range", + name = L["Taille du second icône"], + min = 0.2, max = 1, step = 0.1, + get = function(info) return Ovale.db.profile.apparence.secondIconScale end, + set = function(info,value) Ovale.db.profile.apparence.secondIconScale = value; Ovale:UpdateFrame() end + }, fontScale = { order = 3, @@ -1997,7 +2009,7 @@ function Ovale:CalculerMeilleureAction(element) for k,v in pairs(element.params) do parameterList = parameterList..k.."="..v.."," end - self:Print("Function "..parameterList..") returned "..nilstring(start)..","..nilstring(ending)) + self:Print("Function "..parameterList..") returned "..nilstring(start)..","..nilstring(ending)..","..nilstring(rate)) end return start, ending, rate @@ -2330,7 +2342,7 @@ function Ovale:ChargerDefaut() top = 500, check = {}, list = {}, - apparence = {enCombat=false, iconScale = 2, margin = 4, fontScale = 0.5, iconShiftX = 0, iconShiftY = 0, + apparence = {enCombat=false, iconScale = 2, secondIconScale = 1, margin = 4, fontScale = 0.5, iconShiftX = 0, iconShiftY = 0, smallIconScale=1, raccourcis=true, numeric=false, avecCible = false, verrouille = false, vertical = false, predictif=false, highlightIcon = true, clickThru = false, latencyCorrection=true, hideVehicule=true, flashIcon=true, targetText = "●", alpha = 1, diff --git a/OvaleFrame.lua b/OvaleFrame.lua index dbdde3a..89b7e62 100644 --- a/OvaleFrame.lua +++ b/OvaleFrame.lua @@ -324,8 +324,12 @@ do action.icons[l] = CreateFrame("CheckButton", "Icon"..k.."n"..l,self.frame,"OvaleIcone"); end local icon = action.icons[l] - icon:SetPoint("TOPLEFT",self.frame,"TOPLEFT",(action.left + (l-1)*action.dx)/action.scale,(action.top - (l-1)*action.dy)/action.scale) - icon:SetScale(action.scale) + local scale = action.scale + if l> 1 then + scale = scale * Ovale.db.profile.apparence.secondIconScale + end + icon:SetPoint("TOPLEFT",self.frame,"TOPLEFT",(action.left + (l-1)*action.dx)/scale,(action.top - (l-1)*action.dy)/scale) + icon:SetScale(scale) icon:SetFontScale(Ovale.db.profile.apparence.fontScale) icon:SetHelp(node.params.help) icon:SetRangeIndicator(Ovale.db.profile.apparence.targetText) diff --git a/defaut/Chasseur.lua b/defaut/Chasseur.lua index 1bf6f12..4d89fec 100644 --- a/defaut/Chasseur.lua +++ b/defaut/Chasseur.lua @@ -142,7 +142,7 @@ AddIcon help=main mastery=2 if Glyph(GLYPHOFARCANESHOT) { #/aimed_shot,if=target.health_pct>80|buff.rapid_fire.up|buff.bloodlust.up - if TargetLifePercent(more 80) or + if TargetLifePercent(more 90) or BuffPresent(RAPIDFIRE) or BuffPresent(heroism) if Mana(more 49) Spell(AIMEDSHOT) #/arcane_shot,if=(focus>=66|cooldown.chimera_shot.remains>=5)&(target.health_pct<90&!buff.rapid_fire.up&!buff.bloodlust.up) if {Mana(more 65) or spell(CHIMERASHOT)>5} and {TargetLifePercent(less 90) and diff --git a/defaut/Druide.lua b/defaut/Druide.lua index fc76978..c435151 100644 --- a/defaut/Druide.lua +++ b/defaut/Druide.lua @@ -153,7 +153,7 @@ AddIcon help=main mastery=1 Spell(SUNFIRE nored=1) #/moonfire,if=(!ticking|ticks_remain<2|(dot.moonfire.remains<4&buff.lunar_eclipse.up&eclipse>-20)) - if BuffExpires(ECLIPSELUNAR 0) and {TargetDebuffExpires(MOONFIRE 2 mine=1) or {TargetDebuffExpires(MOONFIRE 4 mine=1) and Eclipse(more -20)}} + if {TargetDebuffExpires(MOONFIRE 2 mine=1) or {TargetDebuffExpires(MOONFIRE 4 mine=1) and Eclipse(more -20)}} and TargetDebuffExpires(SUNFIRE 0 mine=1) Spell(MOONFIRE nored=1) } @@ -234,7 +234,7 @@ AddIcon help=main mastery=2 Spell(MANGLECAT) #ravage,if=buff.stampede_cat.up&buff.stampede_cat.remains<=1 - if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 1) Spell(RAVAGE) + if BuffPresent(STAMPEDE) and BuffExpires(STAMPEDE 1) and CheckBoxOn(shred) Spell(RAVAGE) #ferocious_bite,if=buff.combo_points.stack>=1&dot.rip.ticking&dot.rip.remains<=1&target.health_pct<=25 if ComboPoints(more 0) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 1 mine=1) and TargetLifePercent(less 25) @@ -245,7 +245,7 @@ AddIcon help=main mastery=2 Spell(FEROCIOUSBITE) #/shred,extend_rip=1,if=dot.rip.ticking&dot.rip.remains<=4&target.health_pct>25 TODO: extend_rip=1? - if TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and TargetLifePercent(more 25) Spell(SHRED) + if TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and TargetLifePercent(more 25) and CheckBoxOn(shred) Spell(SHRED) #rip,if=buff.combo_points.stack>=5&target.time_to_die>=6&dot.rip.remains<2.0&(buff.berserk.up|dot.rip.remains<=cooldown.tigers_fury.remains) if ComboPoints(more 4) and TargetDeadIn(more 6) and TargetDebuffExpires(RIP 2 mine=1) and @@ -265,7 +265,7 @@ AddIcon help=main mastery=2 Spell(RAKE) #shred,if=buff.omen_of_clarity.react - if BuffPresent(CLEARCASTING) Spell(SHRED) + if CheckBoxOn(shred) and BuffPresent(CLEARCASTING) Spell(SHRED) #savage_roar,if=buff.combo_points.stack>=1&buff.savage_roar.remains<=1 if ComboPoints(more 0) and BuffExpires(SAVAGEROAR 1) Spell(SAVAGEROAR) @@ -274,18 +274,22 @@ AddIcon help=main mastery=2 if {TargetDeadIn(less 4) and ComboPoints(more 4)} or {TargetDeadIn(less 1) and ComboPoints(more 0)} Spell(FEROCIOUSBITE) #/ferocious_bite,if=buff.combo_points.stack>=5&dot.rip.remains>=14.0&buff.savage_roar.remains>=10.0 if ComboPoints(more 4) and TargetDebuffPresent(RIP 14 mine=1) and BuffPresent(SAVAGEROAR 10) Spell(FEROCIOUSBITE) - #ravage,if=buff.stampede_cat.up&!buff.omen_of_clarity.react&buff.tigers_fury.up - if BuffPresent(STAMPEDE) and BuffExpires(CLEARCASTING) and BuffPresent(TIGERSFURY) Spell(RAVAGE) - #/shred,if=buff.tigers_fury.up|buff.berserk.up - if BuffPresent(TIGERSFURY) or BuffPresent(BERSERK) Spell(SHRED) - #/shred,if=(buff.combo_points.stack<5&dot.rip.remains<3.0)|(buff.combo_points.stack=0&buff.savage_roar.remains<2 - if {ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1)} or {ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2)} Spell(SHRED) - #/shred,if=cooldown.tigers_fury.remains<=3.0 - if spell(TIGERSFURY) < 3 Spell(SHRED) - #/shred,if=target.time_to_die<=8.5 - if TargetDeadIn(less 8.5) Spell(SHRED) - #/shred,if=time_to_max_energy<=1.0 - if 1s before Mana(more 99) Spell(SHRED) + if CheckBoxOn(shred) + { + #ravage,if=buff.stampede_cat.up&!buff.omen_of_clarity.react&buff.tigers_fury.up + if BuffPresent(STAMPEDE) and BuffExpires(CLEARCASTING) and BuffPresent(TIGERSFURY) Spell(RAVAGE) + #/shred,if=buff.tigers_fury.up|buff.berserk.up + if BuffPresent(TIGERSFURY) or BuffPresent(BERSERK) Spell(SHRED) + #/shred,if=(buff.combo_points.stack<5&dot.rip.remains<3.0)|(buff.combo_points.stack=0&buff.savage_roar.remains<2 + if {ComboPoints(less 5) and TargetDebuffExpires(RIP 3 mine=1)} or {ComboPoints(less 1) and BuffExpires(SAVAGEROAR 2)} Spell(SHRED) + #/shred,if=cooldown.tigers_fury.remains<=3.0 + if spell(TIGERSFURY) < 3 Spell(SHRED) + #/shred,if=target.time_to_die<=8.5 + if TargetDeadIn(less 8.5) Spell(SHRED) + #/shred,if=time_to_max_energy<=1.0 + if 1s before Mana(more 99) Spell(SHRED) + } + if CheckBoxOff(shred) and ComboPoints(less 5) Spell(MANGLE) } } diff --git a/defaut/Guerrier.lua b/defaut/Guerrier.lua index 1e687c6..28ea181 100644 --- a/defaut/Guerrier.lua +++ b/defaut/Guerrier.lua @@ -76,8 +76,6 @@ Define(REVENGE 6572) Define(SHATTERINGTHROW 64382) SpellInfo(SHATTERINGTHROW cd=300) SpellAddTargetDebuff(SHATTERINGTHROW SHATTERINGTHROW=10) -Define(SHIELDBASH 72) - SpellInfo(SHIELDBASH cd=12) Define(SHIELDBLOCK 2565) SpellInfo(SHIELDBLOCK cd=60) SpellAddBuff(SHIELDBLOCK SHIELDBLOCK=10) @@ -303,7 +301,7 @@ AddIcon help=main mastery=3 AddIcon help=offgcd mastery=3 { - if target.IsInterruptible() Spell(SHIELDBASH) + if target.IsInterruptible() Spell(PUMMEL) if CheckBoxOn(multi) Spell(CLEAVE) if Mana(more 35) Spell(HEROICSTRIKE) } diff --git a/defaut/Pretre.lua b/defaut/Pretre.lua index a47a1a8..3f77192 100644 --- a/defaut/Pretre.lua +++ b/defaut/Pretre.lua @@ -12,50 +12,50 @@ Define(EMPOWEREDSHADOW 95799) #Spells Define(DEVOURINGPLAGUE 2944) # Devouring Plague - SpellInfo(DEVOURINGPLAGUE duration=24 durationhaste=spell) - SpellAddTargetDebuff(DEVOURINGPLAGUE DEVOURINGPLAGUE=24) - + SpellInfo(DEVOURINGPLAGUE duration=24 durationhaste=spell) + SpellAddTargetDebuff(DEVOURINGPLAGUE DEVOURINGPLAGUE=24) + Define(DISPERSION 47585) - SpellInfo(DISPERSION cd=120) - SpellInfo(DISPERSION addcd=-45 glyph=63229) - + SpellInfo(DISPERSION cd=120) + SpellInfo(DISPERSION addcd=-45 glyph=63229) + Define(INNERFIRE 588) # Inner Fire - SpellAddBuff(INNERFIRE INNERFIRE=1800) - + SpellAddBuff(INNERFIRE INNERFIRE=1800) + Define(INNERWILL 73413) # Inner Will - SpellAddBuff(INNERWILL INNERWILL=1800) - + SpellAddBuff(INNERWILL INNERWILL=1800) + Define(MINDBLAST 8092) # Mind Blast - SpellInfo(MINDBLAST cd=5.5) - SpellAddBuff(MINDBLAST SHADOW_ORBS=0) - SpellAddBuff(MINDBLAST EMPOWEREDSHADOW=15) - + SpellInfo(MINDBLAST cd=6.5) + SpellAddBuff(MINDBLAST SHADOW_ORBS=0) + SpellAddBuff(MINDBLAST EMPOWEREDSHADOW=15) + Define(MINDFLAY 15407) # Mind Flay - + Define(SHADOWFIEND 34433) - SpellInfo(SHADOWFIEND cd=300) - + SpellInfo(SHADOWFIEND cd=300) + Define(SHADOWFORM 15473) # Shadowform Define(SHADOWWORDPAIN 589) # Shadow Word: Pain - SpellInfo(SHADOWWORDPAIN duration=18) - SpellAddTargetDebuff(SHADOWWORDPAIN SHADOWWORDPAIN=18) - + SpellInfo(SHADOWWORDPAIN duration=18) + SpellAddTargetDebuff(SHADOWWORDPAIN SHADOWWORDPAIN=18) + Define(VAMPIRICEMBRACE 15286) # Vampiric Embrace Define(VAMPIRICTOUCH 34914) # Vampiric Touch - SpellInfo(VAMPIRICTOUCH duration=15 durationhaste=spell) - SpellAddTargetDebuff(VAMPIRICTOUCH VAMPIRICTOUCH=15) - + SpellInfo(VAMPIRICTOUCH duration=15 durationhaste=spell) + SpellAddTargetDebuff(VAMPIRICTOUCH VAMPIRICTOUCH=15) + Define(MINDSPIKE 73510) # Mind Spike - # TODO : add talent condition for MIND_MELT - SpellAddBuff(MINDSPIKE MINDSPIKEEFFECT=12 MINDMELT=6) - + # TODO : add talent condition for MIND_MELT + SpellAddBuff(MINDSPIKE MINDSPIKEEFFECT=12 MINDMELT=6) + Define(SHADOWWORDDEATH 32379) # Shadow Word : Death Define(ARCHANGEL 87151) #Archangel - SpellInfo(ARCHANGEL cd=90) - SpellAddBuff(ARCHANGEL DARKARCHANGEL=18) + SpellInfo(ARCHANGEL cd=90) + SpellAddBuff(ARCHANGEL DARKARCHANGEL=18) ### end defines ### @@ -64,96 +64,86 @@ ScoreSpells(MINDBLAST SHADOWWORDPAIN VAMPIRICTOUCH DEVOURINGPLAGUE MINDFLAY SHAD # Add main monitor AddIcon help=main mastery=3 { - #Check shadowform is up - unless BuffPresent(SHADOWFORM) Spell(SHADOWFORM) - - unless InCombat() - { - # Refresh inner fire and vampiric embrace 5 minutes before it drops when out of combat - if BuffExpires(INNERFIRE 300) unless BuffPresent(INNERWILL) Spell(INNERFIRE) - if BuffExpires(INNERWILL 300) unless BuffPresent(INNERFIRE) Spell(INNERWILL) - if BuffExpires(VAMPIRICEMBRACE 300) Spell(VAMPIRICEMBRACE) - } - - # Refresh inner fire and vampiric embrace if they drop during the fight - if BuffExpires(INNERFIRE 5) unless BuffPresent(INNERWILL) Spell(INNERFIRE) - if BuffExpires(INNERWILL 5) unless BuffPresent(INNERFIRE) Spell(INNERWILL) - - if BuffExpires(VAMPIRICEMBRACE 5) Spell(VAMPIRICEMBRACE) - - #if your rotation isn't set up and the target has few seconds to live, use MIND_SPIKE instead of normal rotation + + #Check shadowform is up + unless BuffPresent(SHADOWFORM) Spell(SHADOWFORM) + + unless InCombat() + { + # Refresh inner fire and vampiric embrace 5 minutes before it drops when out of combat + if BuffExpires(INNERFIRE 300) unless BuffPresent(INNERWILL) Spell(INNERFIRE) + if BuffExpires(INNERWILL 300) unless BuffPresent(INNERFIRE) Spell(INNERWILL) + if BuffExpires(VAMPIRICEMBRACE 300) Spell(VAMPIRICEMBRACE) + } + + # Refresh inner fire and vampiric embrace if they drop during the fight + if BuffExpires(INNERFIRE 5) unless BuffPresent(INNERWILL) Spell(INNERFIRE) + if BuffExpires(INNERWILL 5) unless BuffPresent(INNERFIRE) Spell(INNERWILL) + + #if your rotation isn't set up and the target has few seconds to live, use MIND_SPIKE instead of normal rotation if TargetDebuffExpires(SHADOWWORDPAIN 0 mine=1) and TargetDeadIn(less 10) { if BuffPresent(MINDSPIKE stacks=3) or BuffPresent(MINDMELT stacks=2) Spell(MINDBLAST) Spell(MINDSPIKE) } - - if BuffPresent(DARKARCHANGEL) #specific DD-based rotation when under Dark Archangel - { - #Use SHADOWWORDDEATH if we have enough life left - if TargetLifePercent(less 25) and LifePercent(more 20) Spell(SHADOWWORDDEATH) - - #Use MIND_BLAST on CD - if BuffPresent(SHADOWORBS stacks=1) Spell(MINDBLAST) - - #Fill with MIND_FLAY - Spell(MINDFLAY priority=2) - } - + #Refresh empowered shadows if BuffPresent(SHADOWORBS stacks=1) and BuffExpires(EMPOWEREDSHADOW 2) Spell(MINDBLAST) - #Set up / refresh the dots if TargetDebuffExpires(SHADOWWORDPAIN 0 mine=1) and TargetDeadIn(more 10) Spell(SHADOWWORDPAIN) if TargetDebuffExpires(SHADOWWORDPAIN 2 mine=1) and TargetDeadIn(more 6) Spell(MINDFLAY) if TargetDebuffExpires(VAMPIRICTOUCH 3 mine=1 haste=spell) and TargetDeadIn(more 8) Spell(VAMPIRICTOUCH) - + # refresh DEVOURING_PLAGUE only if it is not ticking on another mob unless OtherDebuffPresent(DEVOURINGPLAGUE) { - if TargetDebuffExpires(DEVOURINGPLAGUE 2 mine=1) and TargetDeadIn(more 8) Spell(DEVOURINGPLAGUE) + if TargetDebuffExpires(DEVOURINGPLAGUE 2 mine=1) and TargetDeadIn(more 8) Spell(DEVOURINGPLAGUE) } + if TargetDeadIn(more 15) Spell(SHADOWFIEND) + + #Use SHADOW_WORD_DEATH if we need mana + if ManaPercent(less 25) Spell(SHADOWWORDDEATH) + #Use SHADOW_WORD_DEATH if we have enough life left and it is more useful than MIND_BLAST if TargetLifePercent(less 25) and LifePercent(more 20) Spell(SHADOWWORDDEATH) - - # Launch the fiend - if TargetDeadIn(more 15) and ManaPercent(less 75) Spell(SHADOWFIEND) - - #Use MIND_BLAST when orbs are at 1 or more stack - if BuffPresent(SHADOWORBS stacks=1) Spell(MINDBLAST) - + + Spell(MINDBLAST) + #Fill with MIND_FLAY Spell(MINDFLAY priority=2) } +#Tricket Cooldowns, and making sure DP and VT have at least 5 seconds left before casting Dark Angel AddIcon help=cd { - #Check that you won't have to reapply dots during DA - if BuffPresent(EVANGELISM stacks=5) and TargetDebuffPresent(DEVOURINGPLAGUE 18 mine=1) and TargetDebuffPresent(VAMPIRICTOUCH 13 mine=1) Spell(ARCHANGEL) - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) + #Check that you won't have to reapply dots during DA + if BuffPresent(EVANGELISM stacks=5) and TargetDebuffPresent(DEVOURINGPLAGUE 5 mine=1) and TargetDebuffPresent(VAMPIRICTOUCH 5 mine=1) Spell(ARCHANGEL) + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) } - + + # Add mana monitor AddIcon help=mana mastery=3 { - if LifePercent(less 10) - { - Spell(DISPERSION) - Item(36892) #Health stone - Item(36893) - Item(36894) - Item(33447) #Life potion (lvl 80) + if LifePercent(less 10) + { + Item(36892) #Health stone + Spell(DISPERSION) - } - if ManaPercent(less 80) Spell(SHADOWWORDDEATH) - if ManaPercent(less 5) - { - Spell(DISPERSION) - Item(33448) #Mana potion (lvl 80) - } + } + if ManaPercent(less 25) + { + Spell(DISPERSION) + } } +# Add Focus Target Monitor for Multi Dotting +AddIcon mastery =3 +{ + if TargetDebuffExpires(SHADOWWORDPAIN 1.5 mine=1 target=focus ) and TargetDeadIn(more 10) Spell(SHADOWWORDPAIN target=focus) + if TargetDebuffExpires(VAMPIRICTOUCH 3 mine=1 haste=spell target=focus) and TargetDeadIn(more 8) Spell(VAMPIRICTOUCH target=focus) +} ]] diff --git a/defaut/Voleur.lua b/defaut/Voleur.lua index 55a8b8f..1ce1fa9 100644 --- a/defaut/Voleur.lua +++ b/defaut/Voleur.lua @@ -83,6 +83,7 @@ Define(DEADLYPOISON 2892) #Talents Define(TALENTCUTTOTHECHASE 2070) Define(TALENTENERGETICRECOVERY 11665) +Define(TALENTHEMORRHAGE 681) SpellList(insight 84745 84746 84747) @@ -226,10 +227,16 @@ AddIcon help=main mastery=3 #/eviscerate,if=combo_points=5&dot.rupture.remains>1 if ComboPoints(more 4) and TargetDebuffPresent(RUPTURE 1 mine=1) Spell(EVISCERATE) - #/backstab,if=combo_points<3&energy>60"; - if ComboPoints(less 3) and Mana(more 60) Spell(BACKSTAB) + if TalentPoints(TALENTHEMORRHAGE more 0) + { + #/hemorrhage,if=combo_points<4&energy>40&dot.hemorrhage.remains<4"; + if CombotPoints(less 4) and Mana(more 40) and TargetDebuffExpires(HEMORRHAGE 4 mine=1) Spell(HEMORRHAGE) + #/hemorrhage,if=combo_points<5&energy>80&dot.hemorrhage.remains<4"; + if CombotPoints(less 5) and Mana(more 80) and TargetDebuffExpires(HEMORRHAGE 4 mine=1) Spell(HEMORRHAGE) + } + #/backstab,if=combo_points<4&energy>40&energy<80"; - if ComboPoints(less 4) and Mana(more 40) and Mana(less 80) Spell(BACKSTAB) + if ComboPoints(less 4) and Mana(more 40) Spell(BACKSTAB) #/backstab,if=combo_points<5&energy>80 if ComboPoints(less 5) and Mana(more 80) Spell(BACKSTAB) } -- 1.7.9.5