diff --git a/Condition.lua b/Condition.lua index 85bbe09..b0c7235 100644 --- a/Condition.lua +++ b/Condition.lua @@ -608,7 +608,11 @@ Ovale.conditions= return testbool(IsSpellInRange(spellName,getTarget(condition.target))==1,condition[2]) end, ItemCount = function(condition) - return compare(GetItemCount(condition[1]), condition[2], condition[3]) + if condition.charges == 1 then + return compare(GetItemCount(condition[1], false, true), condition[2], condition[3]) + else + return compare(GetItemCount(condition[1]), condition[2], condition[3]) + end end, IsCasting = function(condition) local casting @@ -910,7 +914,7 @@ Ovale.conditions= return 0, getTargetDead(getTarget(condition.target)), -1 end, timeWithHaste = function(condition) - return avecHate(condition[1], "spell") + return avecHate(condition[1], "spell"),0,0 end, TotemExpires = function(condition) local haveTotem, totemName, startTime, duration = GetTotemInfo(totemType[condition[1]]) diff --git a/Ovale.toc b/Ovale.toc index 8bc7d64..0e2f8ff 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: 4.0.24 +## Version: 4.0.25 ## OptionalDeps: Ace3, ButtonFacade, Recount, Skada, LibBabble-CreatureType-3.0, LibRangeCheck-2.0 ## SavedVariables: OvaleDB ## SavedVariablesPerCharacter: OvaleDBPC diff --git a/OvaleCompile.lua b/OvaleCompile.lua index fa09152..5054dc0 100644 --- a/OvaleCompile.lua +++ b/OvaleCompile.lua @@ -295,6 +295,7 @@ local function ParseAddIcon(params, text) text = string.gsub(text, "node(%d+)%s+before%s+node(%d+)", ParseBefore) text = string.gsub(text, "node(%d+)%s+after%s+node(%d+)", ParseAfter) text = string.gsub(text, "([^%w])(%d+%.?%d*)", ParseNumber) + text = string.gsub(text, "node(%d+)%s*([%*%+%-%/%>%<])%s*node(%d+)", ParseOp) if (was == text) then break end diff --git a/OvaleEquipement.lua b/OvaleEquipement.lua index d4fd196..171d3c1 100644 --- a/OvaleEquipement.lua +++ b/OvaleEquipement.lua @@ -43,6 +43,17 @@ local itemTier = [65266] = "T11", [65267] = "T11", [65268] = "T11", + --Warlock + [65263] = "T11", + [65262] = "T11", + [65261] = "T11", + [65260] = "T11", + [65259] = "T11", + [65252] = "T11", + [65251] = "T11", + [65250] = "T11", + [65249] = "T11", + [65248] = "T11", } local itemSlots = {"HeadSlot", "ShoulderSlot", "ChestSlot", "HandsSlot", "LegsSlot"} diff --git a/defaut/Chasseur.lua b/defaut/Chasseur.lua index 2a0b77f..6b1b868 100644 --- a/defaut/Chasseur.lua +++ b/defaut/Chasseur.lua @@ -52,6 +52,9 @@ Define(MARKEDFORDEATH 88691) Define(FIRE 82926) Define(BEASTWITHIN 34692) +#Glyphs +Define(GLYPHOFARCANESHOT 56841) + AddCheckBox(multi SpellName(MULTISHOT)) ScoreSpells(FOCUSFIRE KILLCOMMAND ARCANESHOT KILLSHOT STEADYSHOT SERPENTSTING CHIMERASHOT AIMEDSHOT @@ -84,6 +87,7 @@ AddIcon help=main mastery=1 AddIcon help=offgcd mastery=1 { + Spell(CALLOFTHEWILD usable=1) #/focus_fire,five_stacks=1,if=!buff.beast_within.up if pet.BuffPresent(FRENZYEFFECT stacks=5) and BuffExpires(BEASTWITHIN 0) Spell(FOCUSFIRE) } @@ -91,6 +95,7 @@ AddIcon help=offgcd mastery=1 AddIcon help=cd mastery=1 { unless BuffPresent(ASPECTOFTHEHAWK) or BuffPresent(ASPECTOFTHEFOX) Spell(ASPECTOFTHEHAWK) + if TargetDebuffExpires(HUNTERSMARK 2) and TargetDebuffExpires(MARKEDFORDEATH 0) and TargetDeadIn(more 20) Spell(HUNTERSMARK nored=1) #/bestial_wrath,if=focus>60 if Mana(more 60) Spell(BESTIALWRATH usable=1) #/rapid_fire,if=!buff.bloodlust.up&!buff.beast_within.up @@ -110,37 +115,67 @@ AddIcon help=main mastery=2 } #/serpent_sting,if=!ticking&target.health_pct<=80 - if Mana(more 24) and TargetDebuffExpires(SERPENTSTING 0 mine=1) and TargetDeadIn(more 8) and TargetLifePercent(less 90) Spell(SERPENTSTING) - if TargetDebuffPresent(SERPENTSTING) and Mana(more 49) Spell(CHIMERASHOT) - if TargetLifePercent(less 20) Spell(KILLSHOT) + if Mana(more 24) and TargetDebuffExpires(SERPENTSTING 0 mine=1) and TargetDeadIn(more 8) and TargetLifePercent(less 80) Spell(SERPENTSTING) + #/chimera_shot,if=target.health_pct<=80 + if Mana(more 49) and TargetLifePercent(less 80) Spell(CHIMERASHOT) + #/steady_shot,if=buff.pre_improved_steady_shot.up&buff.improved_steady_shot.remains<3 + if Mana(less 40) or Counter(ss equal 1) Spell(STEADYSHOT) + #/kill_shot + if TargetLifePercent(less 20) Spell(KILLSHOT) + #/aimed_shot,if=buff.master_marksman_fire.react if BuffPresent(FIRE) Spell(AIMEDSHOT) - if Mana(less 40) or Counter(ss equal 1) Spell(STEADYSHOT) - if CheckBoxOn(multi) Spell(MULTISHOT) - unless 1.6s before Spell(CHIMERASHOT) Spell(ARCANESHOT) - if Mana(more 66) Spell(ARCANESHOT) - unless 0.25s before Spell(CHIMERASHOT) Spell(STEADYSHOT) + if Glyph(GLYPHOFARCANESHOT) + { + #/aimed_shot,if=target.health_pct>80|buff.rapid_fire.up|buff.bloodlust.up + if TargetLifePercent(more 80) 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<80&!buff.rapid_fire.up&!buff.bloodlust.up) + if {Mana(more 65) or spell(CHIMERASHOT)>5} and {TargetLifePercent(less 80) and BuffExpires(RAPIDFIRE) and BuffExpires(heroism)} + if Mana(more 24) Spell(ARCANESHOT) + } + else + { + #/aimed_shot,if=cooldown.chimera_shot.remains>5|focus>=80|buff.rapid_fire.up|buff.bloodlust.up|target.health_pct>80 + if spell(CHIMERASHOT)>5 or Mana(more 79) or BuffPresent(RAPIDFIRE) or BuffPresent(heroism) or TargetLifePercent(more 80) + if Mana(more 49) Spell(AIMEDSHOT) + } + #/steady_shot + Spell(STEADYSHOT) } -AddIcon help=cd mastery=1 +AddIcon help=cd mastery=2 { unless BuffPresent(ASPECTOFTHEHAWK) or BuffPresent(ASPECTOFTHEFOX) Spell(ASPECTOFTHEHAWK) - #/rapid_fire - Spell(RAPIDFIRE) + if TargetDebuffExpires(HUNTERSMARK 2) and TargetDebuffExpires(MARKEDFORDEATH 0) and TargetDeadIn(more 20) Spell(HUNTERSMARK nored=1) + #/rapid_fire,if=!buff.bloodlust.up|target.time_to_die<=30 + unless BuffPresent(heroism) or BuffPresent(RAPIDFIRE) Spell(RAPIDFIRE) + #/readiness,wait_for_rapid_fire=1 + if BuffPresent(RAPIDFIRE) Spell(READINESS) + Spell(CALLOFTHEWILD usable=1) Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) } AddIcon help=main mastery=3 { - if Mana(more 24) and TargetDebuffExpires(SERPENTSTING 0 mine=1) and TargetDeadIn(more 8) Spell(SERPENTSTING) + if CheckBoxOn(multi) + { + #/multi_shot,if=target.adds>5 + if Mana(more 56) Spell(MULTISHOT) + #/cobra_shot,if=target.adds>5 + Spell(STEADYSHOT) + } + + #/serpent_sting,if=!ticking + if Mana(more 24) and TargetDebuffExpires(SERPENTSTING 0 mine=1) and TargetDeadIn(more 8) Spell(SERPENTSTING) + #/explosive_shot,if=!ticking&!in_flight if TargetDebuffExpires(EXPLOSIVESHOT 0 mine=1) Spell(EXPLOSIVESHOT) + #/black_arrow,if=!ticking if Mana(more 35) and TargetDebuffExpires(BLACKARROW 0 mine=1) Spell(BLACKARROW) + #/kill_shot if TargetLifePercent(less 20) Spell(KILLSHOT) - if Mana(more 70) and BuffExpires(LOCKANDLOAD) - { - if CheckBoxOn(multi) Spell(MULTISHOT) - Spell(ARCANESHOT) - } + #/arcane_shot,if=focus>=70&buff.lock_and_load.down + if Mana(more 69) and BuffExpires(LOCKANDLOAD) Spell(ARCANESHOT) + #/cobra_shot Spell(COBRASHOT) Spell(STEADYSHOT) } @@ -150,10 +185,9 @@ AddIcon help=cd mastery=3 { unless BuffPresent(ASPECTOFTHEHAWK) or BuffPresent(ASPECTOFTHEFOX) Spell(ASPECTOFTHEHAWK) if TargetDebuffExpires(HUNTERSMARK 2) and TargetDebuffExpires(MARKEDFORDEATH 0) and TargetDeadIn(more 20) Spell(HUNTERSMARK nored=1) - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) Spell(CALLOFTHEWILD usable=1) unless BuffPresent(heroism) Spell(RAPIDFIRE) - Spell(READINESS) + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) } ]] diff --git a/defaut/Chevalier.lua b/defaut/Chevalier.lua index b5054bf..43e73d0 100644 --- a/defaut/Chevalier.lua +++ b/defaut/Chevalier.lua @@ -12,7 +12,7 @@ Define(BONESHIELD 49222) #blood SpellAddBuff(BONESHIELD BONESHIELD=300) Define(DANCINGRUNEWEAPON 49028) #blood Define(DARKTRANSFORMATION 63560) #unholy -Define(DEATHANDECAY 43265) +Define(DEATHANDDECAY 43265) Define(DEATHCOIL 47541) Define(DEATHPACT 48743) Define(DEATHSTRIKE 49998) @@ -85,6 +85,7 @@ Define(RUNICCORRUPTION 51459) AddCheckBox(horn SpellName(HORNOFWINTER)) AddCheckBox(scarlet SpellName(SCARLETFEVER) mastery=1 default) +AddCheckBox(dnd SpellName(DEATHANDDECAY) mastery=3 default) ScoreSpells(HOWLINGBLAST HEARTSTRIKE BLOODSTRIKE DEATHSTRIKE SCOURGESTRIKE OBLITERATE HEARTSTRIKE PESTILENCE ICYTOUCH PLAGUESTRIKE FROSTSTRIKE DEATHCOIL) @@ -111,7 +112,7 @@ AddIcon help=aoe mastery=1 { if BuffExpires(strengthagility 2) and CheckBoxOn(horn) Spell(HORNOFWINTER) - if Runes(unholy 1) Spell(DEATHANDECAY usable=1) + if Runes(unholy 1) Spell(DEATHANDDECAY usable=1) if TargetDebuffExpires(BLOODPLAGUE 0 mine=1) and TargetDebuffExpires(FROSTFEVER 0 mine=1) Spell(OUTBREAK) if TargetDebuffExpires(FROSTFEVER 0 mine=1) and Runes(frost 1) Spell(ICYTOUCH) @@ -132,40 +133,64 @@ AddIcon help=aoe mastery=1 if Mana(more 39) Spell(DEATHCOIL usable=1) } +AddIcon help=cd mastery=1 +{ + unless BuffPresent(BONESHIELD) Spell(BONESHIELD) + unless TotemPresent(ghoul) Spell(RAISEDEAD) + if TotemPresent(ghoul) and LifePercent(less 61) and Mana(more 39) Spell(DEATHPACT) + Spell(VAMPIRICBLOOD) + Spell(RUNETAP) + Spell(UNBREAKABLEARMOR) + Spell(ICEBOUNDFORTITUDE) +} + AddIcon help=main mastery=2 { if BuffExpires(strengthagility 2) and CheckBoxOn(horn) Spell(HORNOFWINTER) - Spell(PILLAROFFROST) - if BuffPresent(FREEZINGFOG) Spell(HOWLINGBLAST) - + #/pillar_of_frost + if Runes(frost 1) Spell(PILLAROFFROST) + #/outbreak,if=dot.frost_fever.remains<=2|dot.blood_plague.remains<=2 if TargetDebuffExpires(BLOODPLAGUE 2 mine=1) and TargetDebuffExpires(FROSTFEVER 2 mine=1) Spell(OUTBREAK) + #/howling_blast,if=dot.frost_fever.remains<=2 if TargetDebuffExpires(FROSTFEVER 2 mine=1) and Runes(frost 1) { + #/howling_blast,if=dot.frost_fever.remains<=2 if Glyph(GLYPHHOWLINGBLAST) Spell(HOWLINGBLAST) unless Glyph(GLYPHHOWLINGBLAST) Spell(ICYTOUCH) } - if PetPresent(no) Spell(RAISEDEAD priority=2) - + #/plague_strike,if=dot.blood_plague.remains<=2 if TargetDebuffExpires(BLOODPLAGUE 2 mine=1) and Runes(unholy 1) Spell(PLAGUESTRIKE) - + #/obliterate,if=frost=2&unholy=2 + #/obliterate,if=death=2 if Runes(unholy 2 frost 2 nodeath=1) or Runes(death 2) Spell(OBLITERATE) + #/obliterate,if=buff.killing_machine.react if BuffPresent(KILLINGMACHINE) and Runes(unholy 1 frost 1) Spell(OBLITERATE) - Spell(FROSTSTRIKE usable=1) + #/blood_tap + unless Runes(frost 1 unholy 1) Spell(BLOODTAP priority=2) + #/blood_strike,if=blood=2 if Runes(blood 2) Spell(BLOODSTRIKE) + #/frost_strike,if=runic_power>=90 + if Mana(more 89) Spell(FROSTSTRIKE) + #/howling_blast,if=buff.rime.react + if BuffPresent(FREEZINGFOG) Spell(HOWLINGBLAST) + #/obliterate if Runes(unholy 1 frost 1) Spell(OBLITERATE) + #/blood_strike if Runes(blood 1) Spell(BLOODSTRIKE) - - unless Runes(frost 1 unholy 1) Spell(BLOODTAP priority=2) + #/frost_strike + Spell(FROSTSTRIKE usable=1) + #/empower_rune_weapon Spell(EMPOWERRUNEWEAPON priority=2) + #/horn_of_winter if CheckBoxOn(horn) Spell(HORNOFWINTER priority=2) } AddIcon help=aoe mastery=2 { if Runes(unholy 1 frost 1) Spell(HOWLINGBLAST) - if Runes(unholy 1) Spell(DEATHANDECAY usable=1) + if Runes(unholy 1) Spell(DEATHANDDECAY usable=1) if Runes(blood 1) { if TargetDebuffPresent(BLOODPLAGUE) and TargetDebuffPresent(FROSTFEVER) @@ -177,34 +202,60 @@ AddIcon help=aoe mastery=2 } } +AddIcon help=cd mastery=2 +{ + #/raise_dead,time>=5 + unless TotemPresent(ghoul) if TimeInCombat(more 5) Spell(RAISEDEAD priority=2) + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) +} + #Contributed by vitos AddIcon help=main mastery=3 { if BuffExpires(strengthagility 2) and CheckBoxOn(horn) Spell(HORNOFWINTER) - #if TargetDebuffExpires(BLOODPLAGUE 0 mine=1) and TargetDebuffExpires(FROSTFEVER 0 mine=1) Spell(OUTBREAK) - if TargetDebuffExpires(BLOODPLAGUE 3 mine=1) and Runes(unholy 1) Spell(PLAGUESTRIKE) + #/outbreak,if=dot.frost_fever.remains<=2|dot.blood_plague.remains<=2 + if TargetDebuffExpires(BLOODPLAGUE mine=1) and TargetDebuffExpires(FROSTFEVER 2 mine=1) Spell(OUTBREAK) + #/icy_touch,if=dot.frost_fever.remains<3 if TargetDebuffExpires(FROSTFEVER 3 mine=1) and Runes(frost 1) Spell(ICYTOUCH) + #/plague_strike,if=dot.blood_plague.remains<3 + if TargetDebuffExpires(BLOODPLAGUE 3 mine=1) and Runes(unholy 1) Spell(PLAGUESTRIKE) + #/dark_transformation if Runes(unholy 1) and pet.BuffPresent(SHADOWINFUSION stacks=5) Spell(DARKTRANSFORMATION) + #/death_and_decay,if=death=4 + #/death_and_decay,if=unholy=2 + if Runes(death 4) or Runes(unholy 2) if CheckBoxOn(dnd) Spell(DEATHANDDECAY) + #/scourge_strike,if=death=4 + #/scourge_strike,if=unholy=2 if Runes(death 4) or Runes(unholy 2) Spell(SCOURGESTRIKE) + #/festering_strike,if=blood=2&frost=2 if Runes(blood 2 frost 2 nodeath=1) Spell(FESTERINGSTRIKE) -# if Runes(death 4) or Runes(unholy 2) Spell(DEATHANDECAY) unless BuffPresent(RUNICCORRUPTION mine=1) { - if BuffPresent(SUDDENDOOM mine=1) Spell(DEATHCOIL usable=1) + #/death_coil,if=runic_power>90 if Mana(more 90) Spell(DEATHCOIL usable=1) + #/death_coil,if=buff.sudden_doom.react + if BuffPresent(SUDDENDOOM) Spell(DEATHCOIL usable=1) } + #/death_and_decay + if Runes(unholy 1) and CheckBoxOn(dnd) Spell(DEATHANDDECAY) + #/scourge_strike if Runes(unholy 1) Spell(SCOURGESTRIKE) + #/festering_strike if Runes(blood 1 frost 1 nodeath=1) Spell(FESTERINGSTRIKE) -# if Runes(unholy 1) Spell(DEATHANDECAY) + #/death_coil if Mana(more 54) Spell(DEATHCOIL usable=1) + #/blood_tap,if=unholy=0&inactive_death=1 unless Runes(unholy 1) Spell(BLOODTAP priority=2) + #/empower_rune_weapon,if=unholy=0 unless Runes(unholy 1) Spell(EMPOWERRUNEWEAPON priority=2) + #/horn_of_winter Spell(HORNOFWINTER) } AddIcon help=aoe mastery=3 { - if Runes(unholy 1) Spell(DEATHANDECAY usable=1) + if Runes(unholy 1) Spell(DEATHANDDECAY usable=1) if Runes(blood 1) { if TargetDebuffPresent(BLOODPLAGUE) and TargetDebuffPresent(FROSTFEVER) @@ -216,17 +267,8 @@ AddIcon help=aoe mastery=3 } } -AddIcon help=cd +AddIcon help=cd mastery=3 { - unless BuffPresent(BONESHIELD) Spell(BONESHIELD) - if BuffPresent(BLOODPRESENCE) - { - if TotemPresent(ghoul) and LifePercent(less 61) and Mana(more 39) Spell(DEATHPACT) - Spell(VAMPIRICBLOOD) - Spell(RUNETAP) - Spell(UNBREAKABLEARMOR) - Spell(ICEBOUNDFORTITUDE) - } if PetPresent(no) Spell(RAISEDEAD) Spell(SUMMONGARGOYLE) Item(Trinket0Slot usable=1) diff --git a/defaut/Demoniste.lua b/defaut/Demoniste.lua index 37d7e38..db7c305 100644 --- a/defaut/Demoniste.lua +++ b/defaut/Demoniste.lua @@ -21,6 +21,7 @@ Define(DEMONARMOR 687) Define(DEMONICEMPOWERMENT 47193) Define(DEMONSOUL 77801) Define(DRAINLIFE 689) + SpellInfo(DRAINLIFE canStopChannelling=3) Define(DRAINSOUL 1120) SpellInfo(DRAINSOUL canStopChannelling=5) Define(FELARMOR 28176) @@ -34,6 +35,8 @@ Define(IMMOLATE 348) SpellInfo(IMMOLATE duration=15) SpellAddTargetDebuff(IMMOLATE IMMOLATE=15) SpellAddBuff(IMMOLATE MOLTENCORE=-1) +Define(IMMOLATIONAURA 50589) + SpellInfo(IMMOLATIONAURA cd=30) Define(INCINERATE 29722) SpellAddBuff(INCINERATE MOLTENCORE=-1) Define(LIFETAP 1454) @@ -44,6 +47,7 @@ Define(SHADOWBOLT 686) SpellAddTargetDebuff(SHADOWBOLT SHADOWEMBRACE=12) SpellAddTargetDebuff(SHADOWBOLT SHADOWANDFLAMEDEBUFF=30) Define(SHADOWBURN 17877) +Define(SHADOWFLAME 47897) Define(SOULFIRE 6353) SpellAddBuff(SOULFIRE IMPROVEDSOULFIREBUFF=15) Define(SOULBURN 74434) @@ -70,6 +74,12 @@ Define(SHADOWANDFLAMEDEBUFF 17800) #Talent Define(IMPROVEDSOULFIRE 11197) Define(SHADOWANDFLAMETALENT 10936) +Define(BANETALENT 10938) +Define(EMBERSTORMTALENT 11181) + +#Glyph +Define(GLYPHOFLASHOFPAIN 70947) +Define(GLYPHOFIMP 56248) AddListItem(curse elements SpellName(CURSEELEMENTS)) AddListItem(curse tongues SpellName(CURSETONGUES)) @@ -78,8 +88,7 @@ AddListItem(curse none L(None) default) AddListItem(bane agony SpellName(BANEOFAGONY)) AddListItem(bane doom SpellName(BANEOFDOOM) default) AddListItem(bane havoc SpellName(BANEOFHAVOC) mastery=3) -AddListItem(afflic shadow SpellName(SHADOWBOLT) default mastery=1) -AddListItem(afflic drain SpellName(DRAINLIFE) mastery=1) +AddCheckBox(shadowflame SpellName(SHADOWFLAME) default) ScoreSpells(CURSEELEMENTS SHADOWBOLT HAUNT UNSTABLEAFFLICTION IMMOLATE CONFLAGRATE CURSEWEAKNESS BANEOFAGONY CORRUPTION SOULFIRE DRAINSOUL INCINERATE SHADOWBOLT CHAOSBOLT) @@ -91,23 +100,72 @@ AddIcon help=main mastery=1 if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 0) and TargetDeadIn(more 8) Spell(CURSEELEMENTS) if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS) - if TargetDebuffExpires(HAUNT 1.5 mine=1) Spell(HAUNT) + #unless Glyph(GLYPHOFLASHOFPAIN) Spell(DEMONSOUL) + #/corruption,if=(!ticking|remains<tick_time)&miss_reac + if TargetDebuffExpires(CORRUPTION 3 haste=spell mine=1) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) Spell(CORRUPTION) + #/unstable_affliction,if=(!ticking|remains<(cast_time+tick_time))&target.time_to_die>=5&miss_react + if TargetDebuffExpires(UNSTABLEAFFLICTION 4.5 mine=1 haste=spell) and TargetDeadIn(more 5) Spell(UNSTABLEAFFLICTION) + #/bane_of_doom,if=target.time_to_die>15&!ticking&miss_react if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) { - if List(bane doom) and TargetDeadIn(more 20) Spell(BANEOFDOOM) + if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM) if TargetDeadIn(more 10) Spell(BANEOFAGONY) } - if TargetDebuffExpires(CORRUPTION 2 mine=1) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 9) Spell(CORRUPTION) - if TargetDebuffExpires(UNSTABLEAFFLICTION 1.5 mine=1 haste=spell) and TargetDeadIn(more 8) Spell(UNSTABLEAFFLICTION) + #/haunt + if TargetDebuffExpires(HAUNT 1.5 mine=1 haste=spell) Spell(HAUNT) + #/fel_flame,if=buff.tier11_4pc_caster.react&dot.unstable_affliction.remains<8 + if ArmorSetParts(T11 more 3) and TargetDebuffExpires(UNSTABLEAFFLICTION 8) Spell(FELFLAME) + #/shadowflame + if CheckBoxOn(shadowflame) Spell(SHADOWFLAME) + #/drain_soul,interrupt=1,if=target.health_pct<=25 if TargetLifePercent(less 25) Spell(DRAINSOUL) - if List(afflic drain) and BuffPresent(SHADOWTRANCE) Spell(SHADOWBOLT) - if List(afflic shadow) Spell(SHADOWBOLT) - if List(afflic drain) Spell(DRAINLIFE) + + if TalentPoints(BANETALENT more 2) + { + #/life_tap,mana_percentage<=35 + if ManaPercent(less 35) and LifePercent(more 75) Spell(LIFETAP) + #/soulburn + if SoulShards(more 0) Spell(SOULBURN) + if TalentPoints(EMBERSTORMTALENT more 0) and TalentPoints(IMPROVEDSOULFIRE more 0) + { + #/soul_fire,if=buff.improved_soul_fire.cooldown_remains<(cast_time+travel_time)&buff.bloodlust.down&!in_flight + if BuffExpires(IMPROVEDSOULFIREBUFF 4) and BuffExpires(heroism) Spell(SOULFIRE) + } + if TalentPoints(EMBERSTORMTALENT less 1) or TalentPoints(IMPROVEDSOULFIRE less 1) + { + #/soul_fire,if=buff.soulburn.up + if BuffPresent(SOULBURN) Spell(SOULFIRE) + } + #if Glyph(GLYPHOFLASHOFPAIN) Spell(DEMONSOUL) + Spell(SHADOWBOLT) + } + if TalentPoints(BANETALENT less 3) + { + if SoulShards(more 0) Spell(SOULBURN) + #/soul_fire,if=buff.soulburn.up + if BuffPresent(SOULBURN) Spell(SOULFIRE) + #/demon_soul,if=buff.shadow_trance.react + #if BuffPresent(SHADOWTRANCE) Spell(DEMONSOUL) + #/shadow_bolt,if=buff.shadow_trance.react + if BuffPresent(SHADOWTRANCE) Spell(SHADOWBOLT) + #/life_tap,mana_percentage<=5 + if ManaPercent(less 5) and LifePercent(more 75) Spell(LIFETAP) + if TalentPoints(IMPROVEDSOULFIRE more 0) + { + #/soul_fire,if=buff.improved_soul_fire.cooldown_remains<(cast_time+travel_time)&buff.bloodlust.down&!in_flight + if TalentPoints(EMBERSTORMTALENT more 0) if BuffExpires(IMPROVEDSOULFIREBUFF 4) and BuffExpires(heroism) Spell(SOULFIRE) + #/soul_fire,if=buff.soulburn.up + if TalentPoints(EMBERSTORMTALENT less 1) if BuffPresent(SOULBURN) Spell(SOULFIRE) + } + #/drain_life,interrupt=1 + Spell(DRAINLIFE) + } } AddIcon help=cd mastery=1 { - if BuffPresent(heroism) Spell(SUMMONFELGUARD) + #/summon_infernal + Spell(SUMMONINFERNAL) Spell(DEMONSOUL) Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) @@ -120,21 +178,43 @@ AddIcon help=main mastery=2 if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 2) and TargetDeadIn(more 8) Spell(CURSEELEMENTS) if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS) - if TargetDebuffPresent(IMMOLATE) Spell(HANDOFGULDAN) - if BuffPresent(METAMORPHOSIS) Spell(SOULBURN usable=1) - if BuffPresent(SOULBURN) Spell(SOULFIRE) - if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE) - if TargetDebuffExpires(BANEOFDOOM 5 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) + #unless Glyph(GLYPHOFLASHOFPAIN) or Glyph(GLYPHOFIMP) Spell(DEMONSOUL) + #/immolation,if=buff.metamorphosis.remains>10 + if BuffPresent(METAMORPHOSIS 10) Spell(IMMOLATIONAURA) + #/bane_of_doom,if=!ticking&target.time_to_die>=15&miss_react + if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) { if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM) if TargetDeadIn(more 10) Spell(BANEOFAGONY) } - Spell(HANDOFGULDAN) - if BuffPresent(METAMORPHOSIS 10) and BuffExpires(METAMORPHOSIS 16) Spell(IMMOLATE) - if TargetDebuffExpires(CORRUPTION 2 mine=1) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 9) Spell(CORRUPTION) + #/immolate,if=!ticking&target.time_to_die>=4&miss_react + if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE) + #/corruption,if=(remains<tick_time|!ticking)&target.time_to_die>=6&miss_react + if TargetDebuffExpires(CORRUPTION 2 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 6) Spell(CORRUPTION) + #/fel_flame,if=buff.tier11_4pc_caster.react + if ArmorSetParts(T11 more 3) Spell(FELFLAME) + #/shadowflame + if CheckBoxOn(shadowflame) Spell(SHADOWFLAME) + #/demon_soul + #if Glyph(GLYPHOFIMP) Spell(DEMONSOUL) + #/hand_of_guldan + if TargetDebuffPresent(IMMOLATE) Spell(HANDOFGULDAN) + #/incinerate,if=buff.molten_core.react if BuffPresent(MOLTENCORE) Spell(INCINERATE) - if BuffPresent(DECIMATION) Spell(SOULFIRE) - + #/soulburn + if SoulShards(more 0) Spell(SOULBURN) + if TalentPoints(IMPROVEDSOULFIRE more 0) + { + #/soul_fire,if=buff.improved_soul_fire.cooldown_remains<(cast_time+travel_time)&buff.bloodlust.down&!in_flight&miss_react + if BuffExpires(IMPROVEDSOULFIREBUFF 4) and BuffExpires(heroism) Spell(SOULFIRE) + } + if TalentPoints(IMPROVEDSOULFIRE less 1) + { + #/soul_fire,if=buff.decimation.react|buff.soulburn.up + if BuffPresent(DECIMATION) or BuffPresent(SOULBURN) Spell(SOULFIRE) + } + #/life_tap,if=mana_pct<=50&buff.bloodlust.down&buff.metamorphosis.down + if ManaPercent(less 50) and BuffExpires(heroism) and BuffExpires(METAMORPHOSIS) Spell(LIFETAP) Spell(SHADOWBOLT) } @@ -154,19 +234,38 @@ AddIcon help=main mastery=3 if List(curse elements) and TargetDebuffExpires(magicaldamagetaken 2) and TargetDeadIn(more 8) Spell(CURSEELEMENTS) if List(curse weakness) and TargetDebuffExpires(CURSEWEAKNESS 2) and TargetDeadIn(more 8) Spell(CURSEWEAKNESS) - if TalentPoints(IMPROVEDSOULFIRE more 0) and TargetLifePercent(more 80) and - BuffExpires(IMPROVEDSOULFIREBUFF) Spell(SOULFIRE) + #/soul_fire,if=buff.soulburn.up + if BuffPresent(SOULBURN) Spell(SOULFIRE) + #/fel_flame,if=buff.tier11_4pc_caster.react&dot.immolate.remains<8 + if ArmorSetParts(T11 more 3) and TargetDebuffExpires(IMMOLATE 8 mine=1) Spell(FELFLAME) + #/immolate,if=(remains<cast_time+gcd|!ticking)&target.time_to_die>=4&miss_react + if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 4) Spell(IMMOLATE) + #/conflagrate + if 1s after TargetDebuffPresent(IMMOLATE mine=1) Spell(CONFLAGRATE) + #/bane_of_doom,if=!ticking&target.time_to_die>=15&miss_react if TargetDebuffExpires(BANEOFDOOM 0 mine=1) and TargetDebuffExpires(BANEOFAGONY 0 mine=1) { - if List(bane doom) and TargetDeadIn(more 20) Spell(BANEOFDOOM) + if List(bane doom) and TargetDeadIn(more 15) Spell(BANEOFDOOM) if TargetDeadIn(more 10) unless List(bane havoc) Spell(BANEOFAGONY) } - if TargetDebuffExpires(IMMOLATE 2 mine=1 haste=spell) and TargetDeadIn(more 3) Spell(IMMOLATE) - if 1s after TargetDebuffPresent(IMMOLATE mine=1) Spell(CONFLAGRATE) - if TargetDebuffExpires(CORRUPTION 2 mine=1) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 9) Spell(CORRUPTION) - if BuffPresent(EMPOWEREDIMP) or BuffPresent(SOULBURN) Spell(SOULFIRE) - if TalentPoints(SHADOWANDFLAMETALENT more 0) and TargetDebuffExpires(magicalcrittaken) Spell(SHADOWBOLT) + #/corruption,if=(!ticking|dot.corruption.remains<tick_time)&miss_react + if TargetDebuffExpires(CORRUPTION 2 mine=1 haste=spell) and TargetDebuffExpires(SEEDOFCORRUPTION 0 mine=1) and TargetDeadIn(more 9) Spell(CORRUPTION) + #/shadowflame + if CheckBoxOn(shadowflame) Spell(SHADOWFLAME) + #/soul_fire,if=buff.empowered_imp.react&buff.empowered_imp.remains<(buff.improved_soul_fire.remains+action.soul_fire.travel_time) + if TalentPoints(IMPROVEDSOULFIRE more 0) and BuffExpires(IMPROVEDSOULFIREBUFF) and BuffExpires(EMPOWEREDIMP 0) Spell(SOULFIRE) + #/chaos_bolt Spell(CHAOSBOLT) + #/soulburn,if=buff.bloodlust.down + if SoulShards(more 0) and BuffExpires(heroism) Spell(SOULBURN) + #/soul_fire,if=buff.improved_soul_fire.remains<(cast_time+travel_time+action.incinerate.cast_time+gcd)&!in_flight + if TalentPoints(IMPROVEDSOULFIRE more 0) + { + if buffExpires(IMPROVEDSOULFIREBUFF)< {castTime(SOULFIRE)+castTime(INCINERATE)+timeWithHaste(1.5)+1} Spell(SOULFIRE) + } + #/shadowburn + Spell(SHADOWBURN usable=1) + if TalentPoints(SHADOWANDFLAMETALENT more 0) and TargetDebuffExpires(magicalcrittaken) Spell(SHADOWBOLT) Spell(INCINERATE) } @@ -180,7 +279,7 @@ AddIcon help=cd mastery=3 AddIcon size=small { - Spell(SOULBURN usable=1) + if SoulShards(more 0) Spell(SOULBURN usable=1) } AddIcon size=small mastery=1 diff --git a/defaut/Druide.lua b/defaut/Druide.lua index 848dbbc..ba259c5 100644 --- a/defaut/Druide.lua +++ b/defaut/Druide.lua @@ -152,29 +152,23 @@ AddIcon help=main mastery=2 { if Stance(1) # bear { - unless TargetDebuffExpires(LACERATE 4) and TargetDebuffPresent(bleed) - Spell(MANGLEBEAR) - - if Mana(more 10) and TargetDebuffExpires(LACERATE 4 stacks=3) - Spell(LACERATE) - - if TargetDebuffPresent(LACERATE stacks=3) - Spell(PULVERIZE) - - if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 2 mine=0) and TargetDebuffExpires(FAERIEFIREDEBUFF 3 stacks=3) - Spell(FAERIEFERAL) - + #/mangle_bear + Spell(MANGLEBEAR) + #/demoralizing_roar,if=!debuff.demoralizing_roar.up if CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) Spell(DEMOROAR) - - if Mana(more 50) Spell(MAUL) - if CheckBoxOn(multi) - { - Spell(THRASH) - Spell(SWIPEBEAR) - } - Spell(MANGLEBEAR) - Spell(LACERATE) + #/lacerate,if=!ticking + if TargetDebuffExpires(LACERATE 0) Spell(LACERATE) + #/thrash + Spell(THRASH) + if CheckBoxOn(multi) Spell(SWIPEBEAR) + #/pulverize,if=buff.lacerate.stack=3&buff.pulverize.remains<=2 + if TargetDebuffPresent(LACERATE stacks=3) and BuffExpires(PULVERIZE 2) Spell(PULVERIZE) + #/lacerate,if=buff.lacerate.stack<3 + if TargetDebuffExpires(LACERATE 4 stacks=3) Spell(LACERATE) + #/faerie_fire_feral + if CheckBoxOn(lucioles) and TargetDebuffExpires(lowerarmor 2 mine=0) and TargetDebuffExpires(FAERIEFIREDEBUFF 3 stacks=3) + Spell(FAERIEFERAL) } if Stance(3) # cat @@ -234,30 +228,23 @@ AddIcon help=main mastery=2 #ferocious_bite,if=(target.time_to_die<=4&buff.combo_points.stack>=5)|target.time_to_die<=1 if {TargetDeadIn(less 4) and ComboPoints(more 4)} or {TargetDeadIn(less 1) and ComboPoints(more 0)} Spell(FEROCIOUSBITE) - #ferocious_bite,if=level>80&buff.combo_points.stack>=5&dot.rip.remains>=14.0&buff.savage_roar.remains>=10.0 + #/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) #shred,extend_rip=1,if=dot.rip.ticking&dot.rip.remains<=4&target.health_pct>25 if Glyph(GLYPHOFSHRED) and Counter(ripshreds less 3) and TargetDebuffPresent(RIP mine=1) and TargetDebuffExpires(RIP 4 mine=1) and TargetLifePercent(more 25) Spell(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) - #mangle_cat,if=set_bonus.tier11_4pc_melee&buff.t11_4pc_melee.stack<3 - if ArmorSetParts(T11 more 3) and BuffExpires(STRENGTHOFTHEPANTHER 0 stacks=3) Spell(MANGLECAT) - - #shred,if=buff.combo_points.stack<=4&dot.rake.remains>3.0&dot.rip.remains>3.0&(time_to_max_energy<=2.0|(buff.berserk.up&energy>=20)) - if ComboPoints(less 5) and TargetDebuffPresent(RAKE 3 mine=1) and TargetDebuffPresent(RIP 3 mine=1) and {2s before Mana(more 99) or {BuffPresent(BERSERK) and Mana(more 20)}} - {Spell(SHRED) Spell(MANGLECAT)} - #shred,if=cooldown.tigers_fury.remains<=3.0 - if 3s before Spell(TIGERSFURY) Spell(SHRED) - #shred,if=target.time_to_die<=dot.rake.duration - if target.timeToDie()<target.debuffExpires(RAKE mine=1) Spell(SHRED) - #shred,if=buff.combo_points.stack=0&(buff.savage_roar.remains<=2.0|dot.rake.remains>=5.0) - if ComboPoints(less 1) and {BuffExpires(SAVAGEROAR 2) or TargetDebuffPresent(RAKE 5 mine=1)} Spell(SHRED) - #shred,if=!dot.rip.ticking|time_to_max_energy<=1.0 - if TargetDebuffExpires(RIP 0 mine=1) or 1s before Mana(more 99) Spell(SHRED) + Spell(SHRED) } } +AddIcon help=offgcd mastery=2 +{ + #/maul,if=rage>=75 + if Stance(1) and Mana(more 74) Spell(MAUL) +} + AddIcon help=cd mastery=2 { #unless BuffPresent(TIGERSFURY) Spell(BERSERK) diff --git a/defaut/Guerrier.lua b/defaut/Guerrier.lua index b776f26..eae3636 100644 --- a/defaut/Guerrier.lua +++ b/defaut/Guerrier.lua @@ -32,6 +32,7 @@ Define(HEROICSTRIKE 78) SpellInfo(HEROICSTRIKE cd=3) Define(HEROICTHROW 57755) Define(HEROICFURY 60970) +Define(INNERRAGE 1134) Define(INTERCEPT 20252) Define(INTERVENE 3411) Define(LASTSTAND 12975) @@ -82,6 +83,10 @@ Define(SLAUGHTER 84584) #Talents Define(SLAMTALENT 2233) Define(SUDDENDEATH 52437) +Define(TITANSGRIPTALENT 9658) + +#Glyphs +Define(GLYPHOFBERSERKERRAGE 58096) AddCheckBox(multi L(AOE)) AddCheckBox(demo SpellName(DEMOSHOUT)) @@ -100,23 +105,67 @@ AddIcon help=main mastery=1 if TargetClassification(worldboss) and CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) Spell(DEMOSHOUT nored=1) if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1) - if Mana(less 20) Spell(DEADLYCALM) + #/stance,choose=battle,if=(cooldown.recklessness.remains>0&rage<=50) + if Stance(3) and Mana(less 50) unless Spell(RECKLESSNESS) Spell(BATTLESTANCE) + #/berserker_rage,if=!buff.deadly_calm.up&rage<70 + if Glyph(GLYPHOFBERSERKERRAGE) and BuffExpires(DEADLYCALM) and Mana(less 71) Spell(BERSERKERRAGE) + #/deadly_calm,if=rage<30&((target.health_pct>20&target.time_to_die>130)|(target.health_pct<=20&buff.recklessness.up)) + if Mana(less 30) and {{TargetLifePercent(more 20) and TargetDeadIn(more 130)} or {TargetLifePercent(less 20) and BuffPresent(RECKLESSNESS)}} Spell(DEADLYCALM) + if CheckBoxOn(multi) { + #/sweeping_strikes,if=target.adds>0 Spell(SWEEPINGSTRIKES) + #/bladestorm,if=target.adds>0&!buff.deadly_calm.up&!buff.sweeping_strikes.up if BuffExpires(SWEEPINGSTRIKES) and BuffExpires(DEADLYCALM) Spell(BLADESTORM) - Spell(CLEAVE) } + #/inner_rage,if=!buff.deadly_calm.up&rage>80&cooldown.deadly_calm.remains>15 + if BuffExpires(DEADLYCALM) and Mana(more 80) and {spell(DEADLYCALM)>15} Spell(INNERRAGE) + #/overpower,if=buff.taste_for_blood.remains<=1.5 if BuffExpires(TASTEFORBLOOD 1.5) and BuffPresent(TASTEFORBLOOD) Spell(OVERPOWER) + #/mortal_strike,if=target.health_pct>20|rage>=30 + if TargetLifePercent(more 20) or Mana(more 29) Spell(MORTALSTRIKE) + #/execute,if=buff.battle_trance.up + if BuffPresent(BATTLETRANCE) and TargetLifePercent(less 20) Spell(EXECUTE) + #/rend,if=!ticking if TargetDebuffExpires(RENDDEBUFF) Spell(REND) - Spell(COLOSSUSSMASH) + #/colossus_smash,if=buff.colossus_smash.remains<0.5 + if BuffExpires(COLOSSUSSMASH 0.5) Spell(COLOSSUSSMASH) + #/execute,if=(buff.deadly_calm.up|buff.recklessness.up) + if BuffPresent(DEADLYCALM) or BuffPresent(RECKLESSNESS) if TargetLifePercent(less 20) Spell(EXECUTE) + #/mortal_strike Spell(MORTALSTRIKE) - #overpower,if=!buff.lambs_to_the_slaughter.up&rage>35&target.health_pct<20 - if BuffExpires(SLAUGHTER 0) and Mana(more 35) and TargetLifePercent(less 20) - Spell(OVERPOWER usable=1) - if TargetLifePercent(less 20) Spell(EXECUTE) + #/overpower Spell(OVERPOWER usable=1) - unless 1.5s before Spell(MORTALSTRIKE) Spell(SLAM) + #/execute + if TargetLifePercent(less 20) Spell(EXECUTE) + #/slam,if=(cooldown.mortal_strike.remains>=1.5&(rage>=35|swing.mh.remains<1.1|buff.deadly_calm.up|buff.colossus_smash.up))|(cooldown.mortal_strike.remains>=1.2&buff.colossus_smash.remains>0.5&rage>=35) + if {{spell(MORTALSTRIKE)>1.5} and {Mana(more 34) or BuffPresent(DEADLYCALM) or BuffPresent(COLOSSUSSMASH)} or {spell(MORTALSTRIKE)>1.2 and BuffPresent(COLOSSUSSMASH 0.5) and Mana(more 34)} + Spell(SLAM) + #/battle_shout,if=rage<20 + if Mana(less 20) Spell(BATTLESHOUT priority=2) +} + +AddIcon help=offgcd mastery=1 +{ + if target.IsInterruptible() Spell(PUMMEL) + if CheckBoxOn(multi) Spell(CLEAVE) + #/heroic_strike,if=(rage>70|buff.deadly_calm.up|buff.incite.up|buff.battle_trance.up) + if Mana(more 70) or BuffPresent(DEADLYCALM) or BuffPresent(INCITE) or BuffPresent(BATTLETRANCE) + Spell(HEROICSTRIKE) +} + +AddIcon help=cd mastery=1 +{ + if {TargetLifePercent(more 20) and TargetDeadIn(more 320)} or TargetLifePercent(less 20) + { + #/stance,choose=berserker,if=cooldown.recklessness.remains=0&rage<=50&((target.health_pct>20&target.time_to_die>320)|target.health_pct<=20) + if Stance(1) and Spell(RECKLESSNESS) and Mana(less 50) Spell(BERSERKERSTANCE) + #/recklessness,if=((target.health_pct>20&target.time_to_die>320)|target.health_pct<=20) + Spell(RECKLESSNESS) + } + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) } AddIcon help=main mastery=2 @@ -126,22 +175,64 @@ AddIcon help=main mastery=2 if TargetClassification(worldboss) and CheckBoxOn(demo) and TargetDebuffExpires(lowerphysicaldamage 2) Spell(DEMOSHOUT nored=1) if TargetDebuffExpires(SUNDERARMORDEBUFF 3 stacks=3) and CheckBoxOn(sunder) and TargetDebuffExpires(lowerarmor 2 mine=0) Spell(SUNDERARMOR nored=1) - if BuffExpires(EXECUTIONER 1.5 stacks=5) and TargetLifePercent(less 20) Spell(EXECUTE) - + #/whirlwind,if=target.adds>0 if CheckBoxOn(multi) Spell(WHIRLWIND) + #/execute,if=buff.executioner_talent.remains<1.5 + if BuffExpires(EXECUTIONER 1.5) and TargetLifePercent(less 20) Spell(EXECUTE) + #/colossus_smash Spell(COLOSSUSSMASH) - if TargetDebuffPresent(COLOSSUSSMASH mine=1) and TargetLifePercent(less 20) Spell(EXECUTE) - if BuffExpires(DEATHWISH 0) and BuffExpires(RECKLESSNESS 0) and BuffExpires(ENRAGE 0) and Mana(less 15) and - 1s before Spell(RAGINGBLOW) Spell(BERSERKERRAGE) - if {BuffPresent(DEATHWISH) or BuffPresent(RECKLESSNESS) or BuffPresent(ENRAGE) or BuffPresent(BERSERKERRAGE)} - and TargetLifePercent(more 20) Spell(RAGINGBLOW) + #/execute,if=buff.executioner_talent.stack<5 + if BuffExpires(EXECUTIONER 0 stacks=5) and TargetLifePercent(less 20) Spell(EXECUTE) + #/bloodthirst + Spell(BLOODTHIRST) + if TalentPoints(TITANSGRIPTALENT more 0) + { + #/berserker_rage,if=!(buff.death_wish.up|buff.enrage.up|buff.unholy_frenzy.up)&rage>15&cooldown.raging_blow.remains<1 + if BuffExpires(DEATHWISH 0) and BuffExpires(RECKLESSNESS 0) and BuffExpires(ENRAGE 0) and Mana(less 15) and + 1s before Spell(RAGINGBLOW) Spell(BERSERKERRAGE) + #/raging_blow + if BuffPresent(DEATHWISH) or BuffPresent(RECKLESSNESS) or BuffPresent(ENRAGE) or BuffPresent(BERSERKERRAGE) + Spell(RAGINGBLOW) + } + #/slam,if=buff.bloodsurge.react + if BuffPresent(BLOODSURGE) Spell(SLAM) + #/execute,if=rage>=50 + if Mana(more 49) and TargetLifePercent(less 20) Spell(EXECUTE) + if TalentPoints(TITANSGRIPTALENT less 1) + { + #/berserker_rage,if=!(buff.death_wish.up|buff.enrage.up|buff.unholy_frenzy.up)&rage>15&cooldown.raging_blow.remains<1 + if BuffExpires(DEATHWISH 0) and BuffExpires(RECKLESSNESS 0) and BuffExpires(ENRAGE 0) and Mana(less 15) and + 1s before Spell(RAGINGBLOW) Spell(BERSERKERRAGE) + #/raging_blow + if BuffPresent(DEATHWISH) or BuffPresent(RECKLESSNESS) or BuffPresent(ENRAGE) or BuffPresent(BERSERKERRAGE) + Spell(RAGINGBLOW) + } - Spell(BLOODTHIRST) - if TargetLifePercent(less 20) Spell(EXECUTE) Spell(VICTORYRUSH usable=1) - if BuffPresent(BLOODSURGE) Spell(SLAM) + #/battle_shout,if=rage<70 + if Mana(less 70) Spell(BATTLESHOUT priority=2) } +AddIcon help=offgcd mastery=2 +{ + if target.IsInterruptible() Spell(PUMMEL) + #/cleave,if=target.adds>0 + if CheckBoxOn(multi) Spell(CLEAVE) + #/heroic_strike,if=((rage>85&target.health_pct>=20)|buff.battle_trance.up|((buff.incite.up|buff.colossus_smash.up)&((rage>=50&target.health_pct>=20)|(rage>=75&target.health_pct<20)))) + if {Mana(more 85) and TargetLifePercent(more 20)} or BuffPresent(BATTLETRANCE) or + {{BuffPresent(INCITE) or BuffPresent(COLOSSUSSMASH)} and {{Mana(more 49) and TargetLifePercent(more 20)} or {Mana(more 74) and TargetLifePercent(less 20)}}} + Spell(HEROICSTRIKE) +} + +AddIcon help=cd mastery=2 +{ + #/recklessness + Spell(RECKLESSNESS) + #/death_wish + Spell(DEATHWISH) + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) +} AddIcon help=main mastery=3 { @@ -156,48 +247,19 @@ AddIcon help=main mastery=3 Spell(THUNDERCLAP) Spell(SHOCKWAVE) } - Spell(SHIELDSLAM) Spell(REVENGE usable=1) + #Spell(SHOCKWAVE) + Spell(SHIELDSLAM) if TargetDebuffExpires(meleeslow) Spell(THUNDERCLAP) Spell(VICTORYRUSH usable=1) Spell(DEVASTATE) } -AddIcon help=offgcd mastery=1 -{ - if target.IsInterruptible() Spell(PUMMEL) - if CheckBoxOn(multi) Spell(CLEAVE) - if Mana(more 65) or BuffPresent(DEADLYCALM) or BuffPresent(INCITE) or BuffPresent(BATTLETRANCE) - Spell(HEROICSTRIKE) -} - -AddIcon help=offgcd mastery=2 -{ - if target.IsInterruptible() Spell(PUMMEL) - if CheckBoxOn(multi) Spell(CLEAVE) - if {Mana(more 60) or BuffPresent(BATTLETRANCE) or BuffPresent(INCITE)} and TargetLifePercent(more 20) - Spell(HEROICSTRIKE) -} - AddIcon help=offgcd mastery=3 { if target.IsInterruptible() Spell(SHIELDBASH) if CheckBoxOn(multi) Spell(CLEAVE) - if Mana(more 60) Spell(HEROICSTRIKE) -} - -AddIcon help=cd mastery=1 -{ - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) -} - -AddIcon help=cd mastery=2 -{ - Spell(DEATHWISH) - Spell(RECKLESSNESS) - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) + if Mana(more 35) Spell(HEROICSTRIKE) } AddIcon help=cd mastery=3 diff --git a/defaut/Mage.lua b/defaut/Mage.lua index a54229f..a06cfce 100644 --- a/defaut/Mage.lua +++ b/defaut/Mage.lua @@ -14,6 +14,7 @@ Define(COLDSNAP 11958) #frost reset cd SpellInfo(COLDSNAP cd=384) Define(COMBUSTION 11129) #fire cd consume dot SpellInfo(COMBUSTION cd=180) +Define(CONJUREMANAGEM 759) Define(COUNTERSPELL 2139) SpellInfo(COUNTERSPELL cd=24) Define(DEEPFREEZE 44572) #frost instant @@ -85,23 +86,57 @@ AddIcon help=main mastery=1 { unless InCombat() if BuffExpires(MAGEARMOR 400) and BuffExpires(MOLTENARMOR 400) and BuffExpires(ICEARMOR 400) Spell(MAGEARMOR) - if BuffPresent(PRESENCEOFMIND) Spell(ARCANEBLAST) - if TargetDeadIn(less 34) and ManaPercent(more 5) Spell(ARCANEBLAST) - if BuffPresent(CLEARCASTING) and DebuffPresent(ARCANEBLASTDEBUFF stacks=2) Spell(ARCANEBLAST) - - if 26s before Spell(EVOCATION) and ManaPercent(more 26) Spell(ARCANEBLAST) - if ManaPercent(more 94) Spell(ARCANEBLAST) - if DebuffPresent(ARCANEBLASTDEBUFF) unless DebuffPresent(ARCANEBLASTDEBUFF stacks=4) or BuffPresent(heroism) + #/arcane_blast,if=target.time_to_die<40&mana_pct>5 + if TargetDeadIn(less 40) and ManaPercent(more 5) Spell(ARCANEBLAST) + #/arcane_blast,if=cooldown.evocation.remains<30&mana_pct>26 + if {spell(EVOCATION)<30} and ManaPercent(more 26) Spell(ARCANEBLAST) + #/evocation,if=target.time_to_die>=31 + if TargetDeadIn(more 31) Spell(EVOCATION) + #/sequence,name=conserve:arcane_blast:arcane_blast:arcane_blast:arcane_blast,if=!buff.bloodlust.up + unless DebuffPresent(ARCANEBLASTDEBUFF stacks=4) or BuffPresent(heroism) Spell(ARCANEBLAST) + if BuffPresent(ARCANEMISSILEBUFF) Spell(ARCANEMISSILES) + #action_list_str += "/arcane_barrage,if=buff.arcane_blast.stack>0"; // when AM hasn't procced + Spell(ARCANEBARRAGE) + if Speed(more 0) + { + Spell(ARCANEBARRAGE) + Spell(FIREBLAST) + Spell(ICELANCE) + } +} + +AddIcon help=cd mastery=1 +{ + if TargetBuffStealable(yes) Spell(SPELLSTEAL) + if TargetIsInterruptible(yes) Spell(COUNTERSPELL) + + #/conjure_mana_gem,if=cooldown.evocation.remains<44&target.time_to_die<44&mana_gem_charges=0 + if ItemCount(MANAGEMITEM less 1 charges=1) and {spell(EVOCATION)<44} and TargetDieIn(less 44)} + Spell(CONJUREMANAGEM) + #if=(cooldown.evocation.remains<30&buff.arcane_blast.stack=4)|cooldown.evocation.remains>90|target.time_to_die<40 + if {{spell(EVOCATION)<30} and DebuffPresent(ARCANEBLAST stacks=4)} or {spell(EVOCATION)>90} or TargetDieIn(less 40) + { + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) + #if ItemCount(VOLCANICPOTION more 0) Item(VOLCANICPOTION) + } + + if {{spell(EVOCATION)<30} and DebuffPresent(ARCANEBLAST stacks=4)} or TargetDieIn(less 40) + { + #action_list_str += "/arcane_power,if=(cooldown.evocation.remains<30&buff.arcane_blast.stack=4)|target.time_to_die<40"; + Spell(ARCANEPOWER) + #action_list_str += "/mana_gem,if=(cooldown.evocation.remains<30&buff.arcane_blast.stack=4)|target.time_to_die<40"; + Spell(MANAGEM) + } + + #action_list_str += "/mirror_image,if=buff.arcane_power.up|(cooldown.arcane_power.remains>20&target.time_to_die>15)"; + if BuffPresent(ARCANEPOWER) or {{spell(ARCANEPOWER)>0} and TargetDieIn(more 15)} Spell(MIRRORIMAGE) + #/flame_orb,if=target.time_to_die>=10 + if TargetDeadIn(more 10) Spell(FLAMEORB) + #/presence_of_mind,arcane_blast + Spell(PRESENCEOFMIND) - if DebuffPresent(ARCANEBLASTDEBUFF) and BuffPresent(heroism) unless DebuffPresent(ARCANEBLASTDEBUFF stacks=3) - Spell(ARCANEBLAST) - - if TargetDeadIn(more 31) Spell(EVOCATION) - Spell(ARCANEMISSILES) - Spell(ARCANEBARRAGE) - if Speed(more 0) Spell(FIREBLAST) - if Speed(more 0) Spell(ICELANCE) } AddIcon help=main mastery=2 @@ -128,6 +163,18 @@ AddIcon help=main mastery=2 if TalentPoints(IMPROVEDSCORCH more 0) Spell(SCORCH) } +AddIcon help=cd mastery=2 +{ + if BuffPresent(heroism) or TargetDeadIn(less 40) Item(VOLCANICPOTION) + if TargetBuffStealable(yes) Spell(SPELLSTEAL) + if TargetIsInterruptible(yes) Spell(COUNTERSPELL) + if ManaPercent(less 85) Item(MANAGEMITEM) + if TargetDeadIn(more 24) Spell(MIRRORIMAGE) + if TargetDeadIn(more 11) Spell(FLAMEORB) + Item(Trinket0Slot usable=1) + Item(Trinket1Slot usable=1) +} + AddIcon help=main mastery=3 { unless InCombat() if BuffExpires(MAGEARMOR 400) and BuffExpires(MOLTENARMOR 400) and BuffExpires(ICEARMOR 400) Spell(MOLTENARMOR) @@ -146,40 +193,6 @@ AddIcon help=main mastery=3 if Speed(more 0) Spell(FIREBLAST) } -AddIcon help=cd mastery=1 -{ - if BuffPresent(heroism) or TargetDeadIn(less 40) Item(VOLCANICPOTION) - if TargetBuffStealable(yes) Spell(SPELLSTEAL) - if TargetIsInterruptible(yes) Spell(COUNTERSPELL) - if TargetDeadIn(more 29) Spell(MIRRORIMAGE) - if TargetDeadIn(less 34) Spell(ARCANEPOWER) - if 26s before Spell(EVOCATION) - { - if DebuffPresent(ARCANEBLAST stacks=3) or DebuffPresent(ARCANEBLAST stacks=4) Spell(ARCANEPOWER) - } - if TargetDeadIn(less 35) Item(MANAGEMITEM) - if 26s before Spell(EVOCATION) - { - if DebuffPresent(ARCANEBLASTDEBUFF stacks=3) Item(MANAGEMITEM) - } - if TargetDeadIn(more 14) Spell(FLAMEORB) - Spell(PRESENCEOFMIND) - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) -} - -AddIcon help=cd mastery=2 -{ - if BuffPresent(heroism) or TargetDeadIn(less 40) Item(VOLCANICPOTION) - if TargetBuffStealable(yes) Spell(SPELLSTEAL) - if TargetIsInterruptible(yes) Spell(COUNTERSPELL) - if ManaPercent(less 85) Item(MANAGEMITEM) - if TargetDeadIn(more 24) Spell(MIRRORIMAGE) - if TargetDeadIn(more 11) Spell(FLAMEORB) - Item(Trinket0Slot usable=1) - Item(Trinket1Slot usable=1) -} - AddIcon help=cd mastery=3 { if BuffPresent(heroism) or TargetDeadIn(less 40) Item(VOLCANICPOTION) diff --git a/defaut/Paladin.lua b/defaut/Paladin.lua index 71ca493..3fb44f7 100644 --- a/defaut/Paladin.lua +++ b/defaut/Paladin.lua @@ -40,7 +40,7 @@ Define(ZEALOTRY 85696) #Buff Define(THEARTOFWAR 59578) Define(JUDGEMENTSOFTHEPURE 53655) -Define(HANDOFLIGHT 90174) +Define(DIVINEPURPOSE 90174) ScoreSpells(SHIELDOFTHERIGHTEOUS JUDGEMENT AVENGERSSHIELD HAMMEROFTHERIGHTEOUS CONSECRATE HOLYWRATH ZEALOTRY INQUISITION TEMPLARSVERDICT DIVINESTORM EXORCISM HAMMEROFWRATH JUDGEMENT CRUSADERSTRIKE) @@ -86,6 +86,7 @@ AddIcon help=main mastery=2 Spell(AVENGERSSHIELD) Spell(HOLYWRATH) Spell(CONSECRATE priority=2) + Spell(DIVINEPLEA priority=2) } AddIcon help=cd mastery=2 @@ -107,19 +108,20 @@ AddIcon help=main mastery=3 #judgement,if=buff.judgements_of_the_pure.down if BuffExpires(JUDGEMENTSOFTHEPURE 0) Spell(JUDGEMENT) #inquisition,if=(buff.inquisition.down|buff.inquisition.remains<5)&(buff.holy_power.react==3|buff.hand_of_light.react) - if BuffExpires(INQUISITION 5) and {HolyPower(equal 3) or BuffPresent(HANDOFLIGHT)} Spell(INQUISITION) - #exorcism,if=buff.the_art_of_war.react - if BuffPresent(THEARTOFWAR) Spell(EXORCISM) - #hammer_of_wrath - if TargetLifePercent(less 20) or BuffPresent(AVENGINGWRATH) Spell(HAMMEROFWRATH) + if BuffExpires(INQUISITION 5) and {HolyPower(equal 3) or BuffPresent(DIVINEPURPOSE)} Spell(INQUISITION) #templars_verdict,if=buff.holy_power.react==3 - if HolyPower(more 2) {if CheckBoxOn(aoe) Spell(DIVINESTORM) Spell(TEMPLARSVERDICT)} + if HolyPower(more 2) Spell(TEMPLARSVERDICT) #crusader_strike,if=buff.hand_of_light.react&(buff.hand_of_light.remains>2)&(buff.holy_power.react<3) - if BuffPresent(HANDOFLIGHT 3) and HolyPower(less 3) Spell(CRUSADERSTRIKE) + if BuffPresent(DIVINEPURPOSE 3) and HolyPower(less 3) Spell(CRUSADERSTRIKE) #templars_verdict,if=buff.hand_of_light.react - if BuffPresent(HANDOFLIGHT) {if CheckBoxOn(aoe) Spell(DIVINESTORM) Spell(TEMPLARSVERDICT)} + if BuffPresent(DIVINEPURPOSE) Spell(TEMPLARSVERDICT) #crusader_strike + if CheckBoxOn(aoe) Spell(DIVINESTORM) Spell(CRUSADERSTRIKE) + #hammer_of_wrath + if TargetLifePercent(less 20) or BuffPresent(AVENGINGWRATH) Spell(HAMMEROFWRATH) + #exorcism,if=buff.the_art_of_war.react + if BuffPresent(THEARTOFWAR) Spell(EXORCISM) #judgement,if=buff.judgements_of_the_pure.remains<2 if BuffExpires(JUDGEMENTSOFTHEPURE 2) Spell(JUDGEMENT) #wait,sec=0.1,if=cooldown.crusader_strike.remains<0.75 @@ -138,9 +140,14 @@ AddIcon help=main mastery=3 AddIcon help=cd mastery=3 { + #/guardian_of_ancient_kings Spell(GUARDIANOFANCIENTKINGS) + #/avenging_wrath,if=buff.zealotry.down if BuffExpires(ZEALOTRY) Spell(AVENGINGWRATH) + #/zealotry,if=buff.avenging_wrath.down + if BuffExpires(AVENGINGWRATH) + Spell(ZEALOTRY) Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }