Johnny C. Lam [04-06-14 - 18:46]
diff --git a/Ovale.toc b/Ovale.toc
index 72ad35f..2ee460d 100644
--- a/Ovale.toc
+++ b/Ovale.toc
@@ -14,7 +14,7 @@
#@no-lib-strip@
embeds.xml
#@end-no-lib-strip@
-locales\locales.xml
+locales\files.xml
Ovale.lua
@@ -61,5 +61,5 @@ OvaleRunes.lua
OvaleSkada.lua
OvaleSpellDamage.lua
OvaleSwing.lua
-conditions\conditions.xml
-scripts\scripts.xml
+class\files.xml
+conditions\files.xml
diff --git a/class/DeathKnight.lua b/class/DeathKnight.lua
new file mode 100644
index 0000000..725720b
--- /dev/null
+++ b/class/DeathKnight.lua
@@ -0,0 +1,196 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Frost, Unholy"
+ local code = [[
+Define(army_of_the_dead 42650)
+ SpellInfo(army_of_the_dead duration=4 frost=1 blood=1 unholy=1 runicpower=-300 cd=600 )
+ SpellAddBuff(army_of_the_dead army_of_the_dead=1)
+Define(blood_charge 114851)
+ SpellInfo(blood_charge duration=25 )
+ SpellAddBuff(blood_charge blood_charge=1)
+Define(blood_fury 20572)
+ SpellInfo(blood_fury duration=15 cd=120 )
+ SpellAddBuff(blood_fury blood_fury=1)
+Define(blood_plague 55078)
+ SpellInfo(blood_plague duration=30 tick=3 )
+ SpellAddTargetDebuff(blood_plague blood_plague=1)
+Define(blood_tap 45529)
+Define(dark_transformation 63560)
+ SpellInfo(dark_transformation duration=30 unholy=1 runicpower=-100 )
+ SpellAddBuff(dark_transformation dark_transformation=1)
+Define(death_and_decay 43265)
+ SpellInfo(death_and_decay duration=10 unholy=1 runicpower=-100 cd=30 )
+ SpellAddBuff(death_and_decay death_and_decay=1)
+Define(death_coil 47541)
+ SpellInfo(death_coil runicpower=400 )
+Define(empower_rune_weapon 47568)
+ SpellInfo(empower_rune_weapon runicpower=-250 cd=300 )
+Define(festering_strike 85948)
+ SpellInfo(festering_strike frost=1 blood=1 runicpower=-200 )
+Define(frost_fever 55095)
+ SpellInfo(frost_fever duration=30 tick=3 )
+ SpellAddTargetDebuff(frost_fever frost_fever=1)
+Define(frost_presence 48266)
+ SpellAddBuff(frost_presence frost_presence=1)
+Define(frost_strike 49143)
+ SpellInfo(frost_strike runicpower=350 )
+Define(golems_strength 79634)
+ SpellInfo(golems_strength duration=25 cd=1 )
+ SpellAddBuff(golems_strength golems_strength=1)
+Define(horn_of_winter 57330)
+ SpellInfo(horn_of_winter duration=300 runicpower=-100 cd=20 )
+ SpellAddBuff(horn_of_winter horn_of_winter=1)
+Define(howling_blast 49184)
+ SpellInfo(howling_blast frost=1 runicpower=-100 )
+Define(killing_machine 51128)
+Define(mogu_power_potion_aura 105706)
+ SpellInfo(mogu_power_potion_aura duration=25 cd=1 )
+ SpellAddBuff(mogu_power_potion_aura mogu_power_potion_aura=1)
+Define(obliterate 49020)
+ SpellInfo(obliterate frost=1 unholy=1 runicpower=-200 )
+Define(outbreak 77575)
+ SpellInfo(outbreak runicpower=0 cd=60 )
+Define(pillar_of_frost 51271)
+ SpellInfo(pillar_of_frost duration=20 frost=1 runicpower=-100 cd=60 )
+ SpellAddBuff(pillar_of_frost pillar_of_frost=1)
+Define(plague_leech 123693)
+ SpellInfo(plague_leech cd=25 )
+Define(plague_strike 45462)
+ SpellInfo(plague_strike unholy=1 runicpower=-100 )
+Define(raise_dead 46584)
+ SpellInfo(raise_dead cd=120 )
+ SpellAddBuff(raise_dead raise_dead=1)
+Define(rime 59057)
+Define(runic_corruption 51460)
+ SpellInfo(runic_corruption duration=3 )
+ SpellAddBuff(runic_corruption runic_corruption=1)
+Define(scourge_strike 55090)
+ SpellInfo(scourge_strike unholy=1 runicpower=-100 )
+Define(shadow_infusion 49572)
+Define(soul_reaper 114866)
+ SpellInfo(soul_reaper duration=5 blood=1 runicpower=-100 cd=6 )
+ SpellAddBuff(soul_reaper soul_reaper=1)
+Define(sudden_doom 49530)
+Define(summon_gargoyle 49206)
+ SpellInfo(summon_gargoyle duration=40 cd=180 )
+ SpellAddBuff(summon_gargoyle summon_gargoyle=1)
+Define(unholy_blight 115989)
+ SpellInfo(unholy_blight duration=10 cd=90 )
+ SpellAddBuff(unholy_blight unholy_blight=1)
+Define(unholy_frenzy 49016)
+ SpellInfo(unholy_frenzy duration=30 cd=180 )
+ SpellAddBuff(unholy_frenzy unholy_frenzy=1)
+Define(unholy_presence 48265)
+ SpellAddBuff(unholy_presence unholy_presence=1)
+Define(blood_tap_talent 13)
+Define(plague_leech_talent 2)
+Define(runic_corruption_talent 15)
+Define(runic_empowerment_talent 14)
+Define(unholy_blight_talent 3)
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ unless Stance(2) Spell(frost_presence)
+ Spell(horn_of_winter)
+ }
+ if BuffStacks(killing_machine) or RunicPower() >88 Spell(frost_strike)
+ if TalentPoints(plague_leech_talent) and {target.DebuffRemains(blood_plague) <3 or target.DebuffRemains(frost_fever) <3 or SpellCooldown(outbreak) <1 } Spell(plague_leech)
+ if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
+ if target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 Spell(soul_reaper)
+ if not target.DebuffPresent(frost_fever) Spell(howling_blast)
+ if not target.DebuffPresent(blood_plague) Spell(plague_strike)
+ if BuffStacks(rime) Spell(howling_blast)
+ if RunicPower() >76 Spell(frost_strike)
+ if RuneCount(unholy) >1 Spell(obliterate)
+ if RuneCount(death) >1 or RuneCount(frost) >1 Spell(howling_blast)
+ Spell(horn_of_winter)
+ if RuneCount(unholy) >0 Spell(obliterate)
+ Spell(howling_blast)
+ if TalentPoints(runic_empowerment_talent) and {RuneCount(frost) ==0 or RuneCount(blood) ==0 } Spell(frost_strike)
+ if TalentPoints(runic_corruption_talent) and BuffExpires(runic_corruption) Spell(frost_strike)
+ Spell(death_and_decay)
+ if RunicPower() >=40 Spell(frost_strike)
+}
+AddIcon mastery=2 help=offgcd
+{
+ if not InCombat()
+ {
+ Spell(pillar_of_frost)
+ }
+ Spell(pillar_of_frost)
+ if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >10 and {RunicPower() >76 or {RunicPower() >=20 and BuffStacks(killing_machine) } } Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 and SpellCooldown(soul_reaper) ==0 } Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } >35 or BuffStacks(blood_charge) >=8 } Spell(blood_tap)
+}
+AddIcon mastery=2 help=cd
+{
+ if not InCombat()
+ {
+ Spell(army_of_the_dead)
+ Spell(blood_fury)
+ Spell(raise_dead)
+ }
+ if target.DeadIn() <=60 and {BuffPresent(mogu_power_potion_aura) or BuffPresent(golems_strength) } Spell(empower_rune_weapon)
+ if BuffPresent(pillar_of_frost) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(blood_fury)
+ Spell(raise_dead)
+ if TalentPoints(unholy_blight_talent) and {target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 } Spell(unholy_blight)
+ Spell(empower_rune_weapon)
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ unless Stance(3) Spell(unholy_presence)
+ Spell(horn_of_winter)
+ }
+ if AttackPower() >{LastSpellAttackPower(blood_plague) +5000 } and TimeInCombat() >15 and not {SpellCooldown(unholy_blight) >49 } Spell(outbreak)
+ if AttackPower() >{LastSpellAttackPower(blood_plague) +5000 } and TimeInCombat() >15 and not {SpellCooldown(unholy_blight) >49 } Spell(plague_strike)
+ if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
+ if target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 Spell(soul_reaper)
+ if not target.DebuffPresent(blood_plague) or not target.DebuffPresent(frost_fever) Spell(plague_strike)
+ Spell(dark_transformation)
+ if RunicPower() >90 Spell(death_coil)
+ if RuneCount(unholy) ==2 Spell(death_and_decay)
+ if RuneCount(unholy) ==2 Spell(scourge_strike)
+ if RuneCount(blood) ==2 and RuneCount(frost) ==2 Spell(festering_strike)
+ Spell(death_and_decay)
+ if BuffStacks(sudden_doom) or {BuffExpires(dark_transformation) and RuneCount(unholy) <=1 } Spell(death_coil)
+ Spell(scourge_strike)
+ if TalentPoints(plague_leech_talent) and SpellCooldown(outbreak) <1 Spell(plague_leech)
+ Spell(festering_strike)
+ Spell(horn_of_winter)
+ if BuffExpires(dark_transformation) or {SpellCooldown(summon_gargoyle) >8 and BuffRemains(dark_transformation) >8 } Spell(death_coil)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >10 and RunicPower() >=32 Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 and SpellCooldown(soul_reaper) ==0 } Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and BuffStacks(shadow_infusion) ==5 Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and RuneCount(unholy) ==2 and SpellCooldown(death_and_decay) ==0 Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and SpellCooldown(death_and_decay) ==0 Spell(blood_tap)
+ if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >=8 Spell(blood_tap)
+}
+AddIcon mastery=3 help=cd
+{
+ if not InCombat()
+ {
+ Spell(army_of_the_dead)
+ Spell(blood_fury)
+ Spell(raise_dead)
+ }
+ if TimeInCombat() >=2 Spell(blood_fury)
+ if TimeInCombat() >=4 Spell(unholy_frenzy)
+ if TimeInCombat() >=4 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if TalentPoints(unholy_blight_talent) and {target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 } Spell(unholy_blight)
+ Spell(summon_gargoyle)
+ Spell(empower_rune_weapon)
+}
+]]
+
+ OvaleScripts:RegisterScript("DEATHKNIGHT", name, desc, code)
+end
diff --git a/class/Druid.lua b/class/Druid.lua
new file mode 100644
index 0000000..93b9cc5
--- /dev/null
+++ b/class/Druid.lua
@@ -0,0 +1,282 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Balance, Feral"
+ local code = [[
+Define(berserk 50334)
+ SpellInfo(berserk duration=10 cd=180 )
+ SpellAddBuff(berserk berserk=1)
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(cat_form 768)
+ SpellAddBuff(cat_form cat_form=1)
+Define(celestial_alignment 112071)
+ SpellInfo(celestial_alignment duration=15 cd=180 )
+ SpellAddBuff(celestial_alignment celestial_alignment=1)
+Define(chosen_of_elune 122114)
+Define(dream_of_cenarius_damage 108381)
+ SpellInfo(dream_of_cenarius_damage duration=30 )
+ SpellAddBuff(dream_of_cenarius_damage dream_of_cenarius_damage=1)
+Define(faerie_fire 770)
+ SpellInfo(faerie_fire duration=300 )
+ SpellAddBuff(faerie_fire faerie_fire=1)
+ AddCheckBox(faerie_fire_check SpellName(faerie_fire))
+Define(ferocious_bite 22568)
+ SpellInfo(ferocious_bite combo=0 energy=25 )
+Define(healing_touch 5185)
+Define(hurricane 16914)
+ SpellInfo(hurricane duration=10 )
+ SpellAddBuff(hurricane hurricane=1)
+Define(incarnation 106731)
+ SpellInfo(incarnation duration=30 cd=180 )
+Define(lunar_eclipse 48518)
+ SpellAddBuff(lunar_eclipse lunar_eclipse=1)
+Define(mangle 33876)
+ SpellInfo(mangle energy=35 )
+Define(mark_of_the_wild 1126)
+ SpellInfo(mark_of_the_wild duration=3600 )
+ SpellAddBuff(mark_of_the_wild mark_of_the_wild=1)
+Define(moonfire 8921)
+ SpellInfo(moonfire duration=14 tick=2 haste=spell )
+ SpellAddTargetDebuff(moonfire moonfire=1)
+Define(moonkin_form 24858)
+ SpellAddBuff(moonkin_form moonkin_form=1)
+Define(natures_grace 16886)
+ SpellInfo(natures_grace duration=15 )
+ SpellAddBuff(natures_grace natures_grace=1)
+Define(natures_swiftness 132158)
+ SpellInfo(natures_swiftness cd=60 )
+ SpellAddBuff(natures_swiftness natures_swiftness=1)
+Define(natures_vigil 124974)
+ SpellInfo(natures_vigil duration=30 cd=90 )
+ SpellAddBuff(natures_vigil natures_vigil=1)
+Define(omen_of_clarity 16864)
+ SpellAddBuff(omen_of_clarity omen_of_clarity=1)
+Define(predatory_swiftness 16974)
+Define(rake 1822)
+ SpellInfo(rake duration=15 energy=35 tick=3 combo=1 )
+ SpellAddTargetDebuff(rake rake=1)
+Define(rip 1079)
+ SpellInfo(rip duration=16 combo=0 energy=30 tick=2 )
+ SpellAddTargetDebuff(rip rip=1)
+Define(savage_roar 52610)
+ SpellInfo(savage_roar duration=12 combo=0 energy=25 )
+ SpellAddBuff(savage_roar savage_roar=1)
+Define(shooting_stars 93399)
+Define(shred 5221)
+ SpellInfo(shred energy=40 combo=1 )
+Define(skull_bash_cat 80965)
+ SpellInfo(skull_bash_cat cd=15 )
+Define(solar_eclipse 48517)
+ SpellAddBuff(solar_eclipse solar_eclipse=1)
+Define(starfall 48505)
+ SpellInfo(starfall duration=10 cd=90 )
+ SpellAddBuff(starfall starfall=1)
+Define(starfire 2912)
+Define(starsurge 78674)
+ SpellInfo(starsurge cd=15 )
+Define(sunfire 93402)
+ SpellInfo(sunfire duration=14 tick=2 haste=spell )
+ SpellAddTargetDebuff(sunfire sunfire=1)
+Define(thrash 106832)
+Define(thrash 77758)
+ SpellInfo(thrash duration=16 tick=2 cd=6 )
+ SpellAddTargetDebuff(thrash thrash=1)
+Define(tigers_fury 5217)
+ SpellInfo(tigers_fury duration=6 energy=-60 cd=30 )
+ SpellAddBuff(tigers_fury tigers_fury=1)
+Define(treants 106737)
+ SpellInfo(treants duration=15 cd=60 )
+Define(virmens_bite 105697)
+ SpellInfo(virmens_bite duration=25 cd=1 )
+ SpellAddBuff(virmens_bite virmens_bite=1)
+Define(weakened_armor 113746)
+ SpellInfo(weakened_armor duration=30 )
+ SpellAddBuff(weakened_armor weakened_armor=1)
+Define(wild_mushroom 88747)
+ SpellInfo(wild_mushroom duration=300 )
+Define(wild_mushroom_detonate 78777)
+Define(wrath 5176)
+Define(dream_of_cenarius_talent 17)
+Define(force_of_nature_talent 12)
+Define(incarnation_talent 11)
+Define(natures_swiftness_talent 4)
+Define(natures_vigil_talent 18)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(str_agi_int any=1) Spell(mark_of_the_wild)
+ if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
+ unless Stance(5) Spell(moonkin_form)
+ }
+ if TalentPoints(force_of_nature_talent) Spell(treants)
+ if TalentPoints(dream_of_cenarius_talent) and not BuffPresent(dream_of_cenarius_damage) and ManaPercent() >25 Spell(healing_touch)
+ if BuffStacks(shooting_stars) and {True() or not BuffPresent(solar_eclipse) } Spell(starsurge)
+ if BuffPresent(lunar_eclipse) and {target.DebuffRemains(moonfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(moonfire)
+ if BuffPresent(solar_eclipse) and {target.DebuffRemains(sunfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(sunfire)
+ if {target.DebuffRemains(moonfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(moonfire)
+ if {target.DebuffRemains(sunfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(sunfire)
+ if BuffPresent(lunar_eclipse) and target.TicksRemain(moonfire) <2 Spell(moonfire)
+ if BuffPresent(solar_eclipse) and target.TicksRemain(sunfire) <2 Spell(sunfire)
+ if SpellCooldown(starsurge) Spell(starsurge)
+ if BuffPresent(celestial_alignment) and CastTime(starfire) <BuffRemains(celestial_alignment) Spell(starfire)
+ if BuffPresent(celestial_alignment) and CastTime(wrath) <BuffRemains(celestial_alignment) Spell(wrath)
+ if EclipseDir() ==1 or {EclipseDir() ==0 and Eclipse() >0 } Spell(starfire)
+ if EclipseDir() ==0-1 or {EclipseDir() ==0 and Eclipse() <=0 } Spell(wrath)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if BuffStacks(wild_mushroom) >0 and BuffPresent(solar_eclipse) Spell(wild_mushroom_detonate)
+ if TalentPoints(natures_swiftness_talent) and TalentPoints(dream_of_cenarius_talent) Spell(natures_swiftness)
+}
+AddIcon mastery=1 help=moving
+{
+ if target.TicksRemain(moonfire) <2 Spell(moonfire)
+ if target.TicksRemain(sunfire) <2 Spell(sunfire)
+ if BuffStacks(wild_mushroom) <0 Spell(wild_mushroom)
+ if BuffStacks(shooting_stars) Spell(starsurge)
+ if BuffPresent(lunar_eclipse) Spell(moonfire)
+ Spell(sunfire)
+}
+AddIcon mastery=1 help=aoe
+{
+ if BuffPresent(solar_eclipse) and BuffPresent(natures_grace) Spell(hurricane)
+ if BuffPresent(solar_eclipse) and ManaPercent() >25 Spell(hurricane)
+ if BuffPresent(solar_eclipse) and ManaPercent() >25 Spell(hurricane)
+}
+AddIcon mastery=1 help=cd
+{
+ if not BuffPresent(starfall) Spell(starfall)
+ if BuffPresent(celestial_alignment) Spell(berserking)
+ if BuffPresent(celestial_alignment) or SpellCooldown(celestial_alignment) >30 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if TalentPoints(incarnation_talent) and {BuffPresent(lunar_eclipse) or BuffPresent(solar_eclipse) } Spell(incarnation)
+ if {not BuffPresent(lunar_eclipse) and not BuffPresent(solar_eclipse) } and {BuffPresent(chosen_of_elune) or not TalentPoints(incarnation_talent) or SpellCooldown(incarnation) >10 } Spell(celestial_alignment)
+ if TalentPoints(natures_vigil_talent) Spell(natures_vigil)
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(str_agi_int any=1) Spell(mark_of_the_wild)
+ if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
+ unless Stance(3) Spell(cat_form)
+ Spell(savage_roar)
+ }
+ if target.IsInterruptible() Spell(skull_bash_cat)
+ if BuffPresent(predatory_swiftness) and BuffRemains(predatory_swiftness) <=1.5 and BuffExpires(dream_of_cenarius_damage) Spell(healing_touch)
+ if BuffExpires(savage_roar) Spell(savage_roar)
+ if target.DebuffStacks(weakened_armor any=1) <3 if CheckBoxOn(faerie_fire_check) Spell(faerie_fire)
+ if BuffPresent(predatory_swiftness) and ComboPoints() >=4 and BuffStacks(dream_of_cenarius_damage) <2 Spell(healing_touch)
+ if BuffPresent(natures_swiftness) Spell(healing_touch)
+ if ComboPoints() >=1 and target.DebuffPresent(rip) and target.DebuffRemains(rip) <=3 and target.HealthPercent() <=25 Spell(ferocious_bite)
+ if {target.DeadIn() <=4 and ComboPoints() >=5 } or {target.DeadIn() <=1 and ComboPoints() >=3 } Spell(ferocious_bite)
+ if BuffRemains(savage_roar) <=3 and ComboPoints() >0 and target.HealthPercent() <25 Spell(savage_roar)
+ if ComboPoints() >=5 and BuffPresent(virmens_bite) and BuffPresent(dream_of_cenarius_damage) and target.HealthPercent() <=25 and target.DeadIn() >30 Spell(rip)
+ if ComboPoints() >=5 and target.DebuffPresent(rip) and target.HealthPercent() <=25 Spell(ferocious_bite)
+ if ComboPoints() >=5 and target.DeadIn() >=6 and target.DebuffRemains(rip) <2 and BuffPresent(dream_of_cenarius_damage) Spell(rip)
+ if ComboPoints() >=5 and target.DeadIn() >=6 and target.DebuffRemains(rip) <2 and {BuffPresent(berserk) or target.DebuffRemains(rip) +1.9 <=SpellCooldown(tigers_fury) } Spell(rip)
+ if BuffRemains(savage_roar) <=3 and ComboPoints() >0 and BuffRemains(savage_roar) +2 >target.DebuffRemains(rip) Spell(savage_roar)
+ if BuffRemains(savage_roar) <=6 and ComboPoints() >=5 and BuffRemains(savage_roar) +2 <=target.DebuffRemains(rip) Spell(savage_roar)
+ if ComboPoints() >=5 and target.DebuffRemains(rip) >6 Spell(ferocious_bite)
+ if target.DebuffRemains(rake) <9 and BuffPresent(dream_of_cenarius_damage) Spell(rake)
+ if target.DebuffRemains(rake) <3 Spell(rake)
+ if BuffStacks(omen_of_clarity)
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if {ComboPoints() <5 and target.DebuffRemains(rip) <3 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 }
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if BuffRemains(predatory_swiftness) >1
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if target.DeadIn() <=8.5
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if BuffPresent(tigers_fury) or BuffPresent(berserk)
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if SpellCooldown(tigers_fury) <=3
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+ if TimeToMaxEnergy() <=1
+ {
+ if BuffStacks(omen_of_clarity) Spell(shred)
+ if BuffPresent(berserk) Spell(shred)
+ if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
+ Spell(shred)
+ }
+}
+AddIcon mastery=2 help=offgcd
+{
+ if {Energy() <=35 and not BuffStacks(omen_of_clarity) } Spell(tigers_fury)
+ if target.DeadIn() >=6 and BuffStacks(omen_of_clarity) and target.DebuffRemains(thrash) <3 Spell(thrash)
+ if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.HealthPercent() <=25 Spell(natures_swiftness)
+ if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.DebuffRemains(rip) <3 and {BuffPresent(berserk) or target.DebuffRemains(rip) +1.9 <=SpellCooldown(tigers_fury) } Spell(natures_swiftness)
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and {target.DebuffRemains(rip) >=4 or BuffPresent(berserk) } Spell(thrash)
+ if BuffStacks(omen_of_clarity)
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if {ComboPoints() <5 and target.DebuffRemains(rip) <3 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 }
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if BuffRemains(predatory_swiftness) >1
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if target.DeadIn() <=8.5
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if BuffPresent(tigers_fury) or BuffPresent(berserk)
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if SpellCooldown(tigers_fury) <=3
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+ if TimeToMaxEnergy() <=1
+ {
+ if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
+ }
+}
+AddIcon mastery=2 help=cd
+{
+ Spell(berserking)
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if BuffPresent(tigers_fury) or {target.DeadIn() <18 and SpellCooldown(tigers_fury) >6 } Spell(berserk)
+}
+]]
+
+ OvaleScripts:RegisterScript("DRUID", name, desc, code)
+end
diff --git a/class/Hunter.lua b/class/Hunter.lua
new file mode 100644
index 0000000..373968b
--- /dev/null
+++ b/class/Hunter.lua
@@ -0,0 +1,245 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Beast Mastery, Marksmanship, Survival"
+ local code = [[
+Define(a_murder_of_crows 131900)
+Define(aimed_shot 19434)
+ SpellInfo(aimed_shot focus=50 )
+Define(arcane_shot 3044)
+ SpellInfo(arcane_shot focus=20 )
+Define(aspect_of_the_hawk 13165)
+ SpellInfo(aspect_of_the_hawk cd=1 )
+ SpellAddBuff(aspect_of_the_hawk aspect_of_the_hawk=1)
+Define(barrage 120360)
+ SpellInfo(barrage duration=3 focus=30 cd=30 )
+Define(beast_within 34692)
+Define(bestial_wrath 19574)
+ SpellInfo(bestial_wrath duration=10 cd=60 )
+ SpellAddBuff(bestial_wrath bestial_wrath=1)
+Define(black_arrow 3674)
+ SpellInfo(black_arrow duration=20 focus=35 tick=2 cd=30 )
+ SpellAddTargetDebuff(black_arrow black_arrow=1)
+Define(blood_fury 20572)
+ SpellInfo(blood_fury duration=15 cd=120 )
+ SpellAddBuff(blood_fury blood_fury=1)
+Define(call_pet_1 883)
+Define(chimera_shot 53209)
+ SpellInfo(chimera_shot focus=45 cd=9 )
+Define(cobra_shot 77767)
+ SpellInfo(cobra_shot focus=-14 )
+Define(dire_beast 120679)
+ SpellInfo(dire_beast duration=15 cd=30 )
+Define(explosive_shot 53301)
+ SpellInfo(explosive_shot duration=2 focus=25 tick=1 cd=6 )
+ SpellAddTargetDebuff(explosive_shot explosive_shot=1)
+Define(explosive_trap 13812)
+ SpellInfo(explosive_trap duration=20 )
+ SpellAddTargetDebuff(explosive_trap explosive_trap=1)
+Define(fervor 82726)
+ SpellInfo(fervor duration=10 focus=-50 cd=30 )
+ SpellAddBuff(fervor fervor=1)
+Define(focus_fire 82692)
+ SpellInfo(focus_fire duration=20 )
+ SpellAddBuff(focus_fire focus_fire=1)
+Define(glaive_toss 120761)
+ SpellInfo(glaive_toss duration=3 )
+ SpellAddBuff(glaive_toss glaive_toss=1)
+Define(hunters_mark 1130)
+ SpellInfo(hunters_mark duration=300 )
+ SpellAddTargetDebuff(hunters_mark hunters_mark=1)
+Define(kill_command 34026)
+ SpellInfo(kill_command focus=40 cd=6 )
+ SpellAddBuff(kill_command kill_command=1)
+Define(kill_shot 53351)
+ SpellInfo(kill_shot cd=10 )
+Define(lock_and_load 56343)
+Define(lynx_rush 120699)
+ SpellInfo(lynx_rush duration=15 tick=3 )
+ SpellAddTargetDebuff(lynx_rush lynx_rush=1)
+Define(master_marksman_fire 82926)
+ SpellInfo(master_marksman_fire duration=10 )
+ SpellAddBuff(master_marksman_fire master_marksman_fire=1)
+Define(multi_shot 2643)
+ SpellInfo(multi_shot focus=40 )
+Define(pet_frenzy 19615)
+ SpellInfo(pet_frenzy duration=30 )
+ SpellAddBuff(pet_frenzy pet_frenzy=1)
+Define(powershot 109259)
+ SpellInfo(powershot focus=20 cd=60 )
+Define(rapid_fire 3045)
+ SpellInfo(rapid_fire duration=15 cd=180 )
+ SpellAddBuff(rapid_fire rapid_fire=1)
+Define(readiness 23989)
+ SpellInfo(readiness cd=300 )
+Define(serpent_sting 1978)
+ SpellInfo(serpent_sting focus=25 )
+ SpellAddTargetDebuff(serpent_sting serpent_sting_aura=1)
+Define(serpent_sting_aura 118253)
+ SpellInfo(serpent_sting_aura duration=15 tick=3 )
+ SpellAddTargetDebuff(serpent_sting_aura serpent_sting_aura=1)
+Define(stampede 57386)
+ SpellInfo(stampede duration=30 cd=15 )
+ SpellAddBuff(stampede stampede=1)
+Define(steady_focus 53224)
+Define(steady_shot 56641)
+ SpellInfo(steady_shot focus=-14 )
+Define(thrill_of_the_hunt 34720)
+ SpellInfo(thrill_of_the_hunt duration=15 )
+ SpellAddBuff(thrill_of_the_hunt thrill_of_the_hunt=1)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
+ unless pet.Present() Spell(call_pet_1)
+ }
+ if BuffStacks(pet_frenzy any=1)>4 Spell(focus_fire)
+ if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
+ if target.HealthPercent(less 20) Spell(kill_shot)
+ Spell(kill_command)
+ if SpellUsable(dire_beast) and Focus() <=90 Spell(dire_beast)
+ if SpellUsable(barrage) Spell(barrage)
+ if SpellUsable(powershot) Spell(powershot)
+ if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
+ if not target.DebuffPresent(focus_fire) and not BuffPresent(beast_within) if BuffStacks(pet_frenzy any=1)>4 Spell(focus_fire)
+ if target.DebuffRemains(serpent_sting_aura) <6 Spell(cobra_shot)
+ if Focus() >=61 or BuffPresent(beast_within) Spell(arcane_shot)
+ Spell(cobra_shot)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if not InCombat()
+ {
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ }
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ if SpellUsable(fervor) and not target.DebuffPresent(fervor) and Focus() <=65 Spell(fervor)
+ if Focus() >60 and not BuffPresent(beast_within) Spell(bestial_wrath)
+ if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
+ if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
+ if SpellUsable(glaive_toss) Spell(glaive_toss)
+ if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
+}
+AddIcon mastery=1 help=aoe
+{
+ Spell(explosive_trap)
+ Spell(multi_shot)
+ Spell(cobra_shot)
+}
+AddIcon mastery=1 help=cd
+{
+ Spell(blood_fury)
+ if not BuffPresent(rapid_fire) Spell(rapid_fire)
+ if BuffPresent(rapid_fire) Spell(readiness)
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
+ unless pet.Present() Spell(call_pet_1)
+ }
+ if SpellUsable(powershot) Spell(powershot)
+ if SpellUsable(dire_beast) Spell(dire_beast)
+ if target.HealthPercent() >80
+ {
+ if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
+ Spell(chimera_shot)
+ if PreviousSpell(steady_shot) and BuffRemains(steady_focus) <6 Spell(steady_shot)
+ Spell(aimed_shot)
+ Spell(steady_shot)
+ }
+ if SpellUsable(barrage) Spell(barrage)
+ if PreviousSpell(steady_shot) and BuffRemains(steady_focus) <=5 Spell(steady_shot)
+ if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
+ Spell(chimera_shot)
+ if BuffRemains(steady_focus) <{CastTime(steady_shot) +1 } and not InFlightToTarget(steady_shot) Spell(steady_shot)
+ if target.HealthPercent(less 20) Spell(kill_shot)
+ if BuffStacks(master_marksman_fire) Spell(aimed_shot)
+ if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
+ if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) Spell(aimed_shot)
+ if Focus() >=60 or {Focus() >=43 and {SpellCooldown(chimera_shot) >=CastTime(steady_shot) } } and {not BuffPresent(rapid_fire) and not BuffStacks(bloodlust any=1) } Spell(arcane_shot)
+ Spell(steady_shot)
+}
+AddIcon mastery=2 help=offgcd
+{
+ if not InCombat()
+ {
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ }
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
+ if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
+ if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
+ if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
+ if SpellUsable(glaive_toss) Spell(glaive_toss)
+}
+AddIcon mastery=2 help=aoe
+{
+ Spell(explosive_trap)
+ Spell(multi_shot)
+ Spell(steady_shot)
+}
+AddIcon mastery=2 help=cd
+{
+ Spell(blood_fury)
+ if not BuffPresent(rapid_fire) Spell(rapid_fire)
+ if target.HealthPercent() >80
+ {
+ Spell(readiness)
+ }
+ Spell(readiness)
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
+ unless pet.Present() Spell(call_pet_1)
+ }
+ if BuffStacks(lock_and_load) Spell(explosive_shot)
+ if SpellUsable(powershot) Spell(powershot)
+ if SpellUsable(barrage) Spell(barrage)
+ if not target.DebuffPresent(serpent_sting_aura) and target.DeadIn() >=10 Spell(serpent_sting)
+ if SpellCooldown(explosive_shot) Spell(explosive_shot)
+ if target.HealthPercent(less 20) Spell(kill_shot)
+ if not target.DebuffPresent(black_arrow) and target.DeadIn() >=8 Spell(black_arrow)
+ if BuffStacks(thrill_of_the_hunt) and target.DebuffRemains(serpent_sting_aura) <2 Spell(multi_shot)
+ if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
+ if SpellUsable(dire_beast) Spell(dire_beast)
+ if target.DebuffRemains(serpent_sting_aura) <6 Spell(cobra_shot)
+ if Focus() >=67 Spell(arcane_shot)
+ Spell(cobra_shot)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if not InCombat()
+ {
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ }
+ unless Stance(1) Spell(aspect_of_the_hawk)
+ if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
+ if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
+ if SpellUsable(glaive_toss) Spell(glaive_toss)
+ if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
+ if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
+}
+AddIcon mastery=3 help=aoe
+{
+ Spell(explosive_trap)
+ Spell(multi_shot)
+ Spell(cobra_shot)
+}
+AddIcon mastery=3 help=cd
+{
+ Spell(blood_fury)
+ if not BuffPresent(rapid_fire) Spell(rapid_fire)
+ if BuffPresent(rapid_fire) Spell(readiness)
+}
+]]
+
+ OvaleScripts:RegisterScript("HUNTER", name, desc, code)
+end
diff --git a/class/Mage.lua b/class/Mage.lua
new file mode 100644
index 0000000..a77e946
--- /dev/null
+++ b/class/Mage.lua
@@ -0,0 +1,237 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Arcane, Fire, Frost"
+ local code = [[
+Define(alter_time 110909)
+ SpellInfo(alter_time duration=6 )
+ SpellAddBuff(alter_time alter_time=1)
+Define(alter_time_activate 108978)
+ SpellInfo(alter_time_activate duration=10 cd=180 )
+Define(arcane_barrage 44425)
+ SpellInfo(arcane_barrage cd=3 )
+Define(arcane_blast 30451)
+Define(arcane_brilliance 1459)
+ SpellInfo(arcane_brilliance duration=3600 )
+ SpellAddBuff(arcane_brilliance arcane_brilliance=1)
+Define(arcane_charge 36032)
+ SpellInfo(arcane_charge duration=10 )
+ SpellAddBuff(arcane_charge arcane_charge=1)
+Define(arcane_missiles 5143)
+ SpellInfo(arcane_missiles duration=2 )
+Define(arcane_missiles_aura 79683)
+ SpellInfo(arcane_missiles_aura duration=20 )
+ SpellAddBuff(arcane_missiles_aura arcane_missiles_aura=1)
+Define(arcane_power 12042)
+ SpellInfo(arcane_power duration=15 cd=90 )
+ SpellAddBuff(arcane_power arcane_power=1)
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(brain_freeze 44549)
+Define(combustion 11129)
+ SpellInfo(combustion cd=45 )
+Define(conjure_mana_gem 759)
+Define(counterspell 2139)
+ SpellInfo(counterspell duration=6 cd=24 )
+Define(fingers_of_frost_aura 44544)
+ SpellInfo(fingers_of_frost_aura duration=15 )
+ SpellAddBuff(fingers_of_frost_aura fingers_of_frost_aura=1)
+Define(fire_blast 2136)
+ SpellInfo(fire_blast cd=8 )
+Define(fireball 133)
+ SpellInfo(fireball base=1561 bonussp=1.5)
+Define(frost_armor 7302)
+ SpellAddBuff(frost_armor frost_armor=1)
+Define(frost_bomb 113092)
+ SpellInfo(frost_bomb duration=2 )
+ SpellAddBuff(frost_bomb frost_bomb=1)
+Define(frostbolt 116)
+ SpellInfo(frostbolt duration=15 )
+ SpellAddBuff(frostbolt frostbolt=1)
+Define(frostfire_bolt 44614)
+ SpellInfo(frostfire_bolt duration=8 )
+ SpellAddBuff(frostfire_bolt frostfire_bolt=1)
+Define(frozen_orb 84714)
+ SpellInfo(frozen_orb duration=10 cd=60 )
+Define(heating_up 48107)
+ SpellInfo(heating_up duration=10 )
+ SpellAddBuff(heating_up heating_up=1)
+Define(ice_lance 30455)
+Define(icy_veins 12472)
+ SpellInfo(icy_veins duration=20 cd=180 )
+ SpellAddBuff(icy_veins icy_veins=1)
+Define(ignite 12654)
+ SpellInfo(ignite duration=4 tick=2 )
+ SpellAddTargetDebuff(ignite ignite=1)
+Define(inferno_blast 108853)
+ SpellInfo(inferno_blast cd=8 )
+ SpellInfo(inferno_blast base=624.5 bonussp=0.6)
+Define(living_bomb 44457)
+ SpellInfo(living_bomb duration=12 tick=3 haste=spell )
+ SpellAddTargetDebuff(living_bomb living_bomb=1)
+Define(mage_armor 6117)
+ SpellAddBuff(mage_armor mage_armor=1)
+Define(mana_gem 56597)
+Define(mirror_image 55342)
+ SpellInfo(mirror_image duration=30 cd=180 )
+ SpellAddBuff(mirror_image mirror_image=1)
+Define(molten_armor 30482)
+ SpellAddBuff(molten_armor molten_armor=1)
+Define(presence_of_mind 12043)
+ SpellInfo(presence_of_mind cd=90 )
+ SpellAddBuff(presence_of_mind presence_of_mind=1)
+Define(pyroblast 11366)
+ SpellInfo(pyroblast duration=18 tick=3 haste=spell )
+ SpellInfo(pyroblast base=2061 bonussp=1.98)
+ SpellAddTargetDebuff(pyroblast pyroblast=1)
+Define(pyroblast_aura 48108)
+ SpellInfo(pyroblast_aura duration=15 )
+ SpellAddBuff(pyroblast_aura pyroblast_aura=1)
+Define(rune_of_power 116011)
+ SpellInfo(rune_of_power duration=60 )
+Define(rune_of_power_aura 116014)
+Define(scorch 2948)
+Define(time_warp 35346)
+ SpellInfo(time_warp duration=6 cd=15 )
+ SpellAddBuff(time_warp time_warp=1)
+Define(water_elemental 63859)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
+ if BuffExpires(mage_armor) Spell(mage_armor)
+ Spell(rune_of_power)
+ }
+ if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
+ if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) Spell(rune_of_power)
+ if SpellCooldown(arcane_power) ==0 and BuffRemains(rune_of_power_aura) <BuffDuration(arcane_power) Spell(rune_of_power)
+ if BuffPresent(alter_time) and BuffRemains(alter_time) <2 Spell(arcane_barrage)
+ if BuffPresent(alter_time) Spell(arcane_missiles)
+ if BuffPresent(alter_time) Spell(arcane_blast)
+ if {BuffStacks(arcane_missiles_aura) ==2 and SpellCooldown(arcane_power) >0 } or {BuffStacks(arcane_charge) >=4 and SpellCooldown(arcane_power) >8 } Spell(arcane_missiles)
+ if {not target.DebuffPresent(living_bomb) or target.DebuffRemains(living_bomb) <TickTime(living_bomb) } and target.DeadIn() >TickTime(living_bomb) *3 Spell(living_bomb)
+ if BuffStacks(arcane_charge) >=4 and ManaPercent() <95 Spell(arcane_barrage)
+ Spell(arcane_blast)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
+ cancel.Spell(alter_time)
+ if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
+ if ManaPercent() <80 and BuffExpires(alter_time) Spell(mana_gem)
+ if BuffExpires(alter_time) and BuffPresent(arcane_power) Spell(alter_time)
+}
+AddIcon mastery=1 help=moving
+{
+ Spell(arcane_barrage)
+ Spell(fire_blast)
+ Spell(ice_lance)
+}
+AddIcon mastery=1 help=cd
+{
+ if not InCombat()
+ {
+ Spell(mirror_image)
+ }
+ Spell(mirror_image)
+ if {BuffRemains(rune_of_power) >=BuffDuration(arcane_power) and BuffStacks(arcane_missiles_aura) ==2 and BuffStacks(arcane_charge) >2 } or target.DeadIn() <BuffDuration(arcane_power) +5 Spell(arcane_power)
+ if BuffExpires(alter_time) and {BuffPresent(arcane_power) or target.DeadIn() <18 } Spell(berserking)
+ if BuffExpires(alter_time) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if {SpellCooldown(alter_time_activate) >45 or target.DeadIn() <25 } and BuffRemains(rune_of_power) >20 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
+ if BuffExpires(molten_armor) Spell(molten_armor)
+ Spell(rune_of_power)
+ }
+ if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
+ if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) and BuffExpires(alter_time) Spell(rune_of_power)
+ if SpellCooldown(alter_time_activate) ==0 and BuffRemains(rune_of_power_aura) <6 Spell(rune_of_power)
+ if BuffStacks(pyroblast_aura) or BuffPresent(presence_of_mind) Spell(pyroblast)
+ if BuffStacks(heating_up) and BuffExpires(pyroblast_aura) Spell(inferno_blast)
+ if {not target.DebuffPresent(living_bomb) or target.DebuffRemains(living_bomb) <TickTime(living_bomb) } and target.DeadIn() >TickTime(living_bomb) *3 Spell(living_bomb)
+ if not target.DebuffPresent(pyroblast) Spell(pyroblast)
+ Spell(fireball)
+}
+AddIcon mastery=2 help=offgcd
+{
+ if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
+ cancel.Spell(alter_time)
+ if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
+ if target.DeadIn() <22 Spell(combustion)
+ if LastSpellDamage(ignite) >={{CritDamage(fireball) +CritDamage(inferno_blast) +Damage(pyroblast) } *{Mastery() /100} *0.5 } and target.DebuffPresent(pyroblast) Spell(combustion)
+ if BuffExpires(alter_time) and BuffStacks(pyroblast_aura) Spell(alter_time)
+}
+AddIcon mastery=2 help=moving
+{
+ Spell(scorch)
+}
+AddIcon mastery=2 help=cd
+{
+ if not InCombat()
+ {
+ Spell(mirror_image)
+ }
+ if BuffExpires(alter_time) and target.DeadIn() <18 Spell(berserking)
+ if BuffExpires(alter_time) Spell(berserking)
+ if BuffExpires(alter_time) Spell(presence_of_mind)
+ if SpellCooldown(alter_time) >30 or target.DeadIn() <15 Spell(presence_of_mind)
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
+ if BuffExpires(frost_armor) Spell(frost_armor)
+ Spell(rune_of_power)
+ }
+ if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
+ if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) and BuffExpires(alter_time) Spell(rune_of_power)
+ if SpellCooldown(icy_veins) ==0 and BuffRemains(rune_of_power_aura) <20 Spell(rune_of_power)
+ if not BuffStacks(fingers_of_frost_aura) Spell(frozen_orb)
+ if BuffPresent(alter_time) and BuffPresent(brain_freeze) Spell(frostfire_bolt)
+ if BuffPresent(alter_time) and BuffPresent(fingers_of_frost_aura) Spell(ice_lance)
+ if target.DebuffStacks(frostbolt) <3 Spell(frostbolt)
+ if BuffStacks(brain_freeze) and SpellCooldown(icy_veins) >2 Spell(frostfire_bolt)
+ if BuffStacks(fingers_of_frost_aura) and SpellCooldown(icy_veins) >2 Spell(ice_lance)
+ Spell(frostbolt)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if not InCombat()
+ {
+ Spell(water_elemental)
+ }
+ if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
+ cancel.Spell(alter_time)
+ if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
+ if BuffExpires(alter_time) and BuffPresent(icy_veins) Spell(alter_time)
+ if target.DeadIn() >CastTime(frost_bomb) +TickTime(frost_bomb) Spell(frost_bomb)
+}
+AddIcon mastery=3 help=moving
+{
+ Spell(fire_blast)
+ Spell(ice_lance)
+}
+AddIcon mastery=3 help=cd
+{
+ if not InCombat()
+ {
+ Spell(mirror_image)
+ }
+ Spell(mirror_image)
+ if {target.DebuffStacks(frostbolt) >=3 and {BuffStacks(brain_freeze) or BuffStacks(fingers_of_frost_aura) } } or target.DeadIn() <22 Spell(icy_veins)
+ if BuffPresent(icy_veins) or target.DeadIn() <18 Spell(berserking)
+ if BuffPresent(icy_veins) or SpellCooldown(icy_veins) >15 or target.DeadIn() <15 Spell(presence_of_mind)
+}
+]]
+
+ OvaleScripts:RegisterScript("MAGE", name, desc, code)
+end
diff --git a/class/Monk.lua b/class/Monk.lua
new file mode 100644
index 0000000..6873619
--- /dev/null
+++ b/class/Monk.lua
@@ -0,0 +1,104 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Windwalker"
+ local code = [[
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(blackout_kick 100784)
+ SpellInfo(blackout_kick chi=2 )
+Define(chi_brew 115399)
+ SpellInfo(chi_brew chi=-4 cd=90 )
+Define(chi_sphere 121286)
+ SpellInfo(chi_sphere duration=120 )
+Define(chi_wave 115098)
+ SpellInfo(chi_wave cd=15 )
+Define(combo_breaker_bok 116768)
+ SpellInfo(combo_breaker_bok duration=15 )
+ SpellAddBuff(combo_breaker_bok combo_breaker_bok=1)
+Define(combo_breaker_tp 118864)
+ SpellInfo(combo_breaker_tp duration=15 )
+ SpellAddBuff(combo_breaker_tp combo_breaker_tp=1)
+Define(energizing_brew 115288)
+ SpellInfo(energizing_brew duration=6 cd=60 )
+ SpellAddBuff(energizing_brew energizing_brew=1)
+Define(fists_of_fury 113656)
+ SpellInfo(fists_of_fury duration=4 chi=3 cd=25 )
+ SpellAddBuff(fists_of_fury fists_of_fury=1)
+Define(invoke_xuen 123904)
+ SpellInfo(invoke_xuen duration=45 cd=180 )
+Define(jab 100780)
+ SpellInfo(jab energy=40 chi=-1 )
+Define(rising_sun_kick 107428)
+ SpellInfo(rising_sun_kick chi=2 cd=8 )
+Define(rushing_jade_wind 116847)
+ SpellInfo(rushing_jade_wind duration=8 chi=2 cd=30 )
+ SpellAddBuff(rushing_jade_wind rushing_jade_wind=1)
+Define(spinning_crane_kick 101546)
+ SpellInfo(spinning_crane_kick duration=2.25 energy=40 )
+ SpellAddBuff(spinning_crane_kick spinning_crane_kick=1)
+Define(tiger_palm 100787)
+ SpellInfo(tiger_palm chi=1 )
+Define(tiger_power 125359)
+ SpellInfo(tiger_power duration=20 )
+ SpellAddBuff(tiger_power tiger_power=1)
+Define(tigereye_brew 125195)
+ SpellInfo(tigereye_brew duration=120 )
+ SpellAddBuff(tigereye_brew tigereye_brew=1)
+Define(tigereye_brew_use 116740)
+ SpellInfo(tigereye_brew_use duration=15 cd=1 )
+ SpellAddBuff(tigereye_brew_use tigereye_brew_use=1)
+Define(ascension_talent 8)
+Define(chi_brew_talent 9)
+Define(chi_wave_talent 4)
+Define(invoke_xuen_the_white_tiger_talent 17)
+Define(power_strikes_talent 7)
+Define(rushing_jade_wind_talent 16)
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ False()
+ }
+ if not target.DebuffRemains(rising_sun_kick) or target.DebuffRemains(rising_sun_kick) <=3 Spell(rising_sun_kick)
+ if BuffRemains(tiger_power) <=3 Spell(tiger_palm)
+ if TalentPoints(rushing_jade_wind_talent) Spell(rushing_jade_wind)
+
+ if BuffStacks(combo_breaker_bok) and TimeToMaxEnergy() <=2 Spell(blackout_kick)
+ Spell(rising_sun_kick)
+ if not BuffPresent(energizing_brew) and TimeToMaxEnergy() >{4 } and BuffRemains(tiger_power) >{4 } Spell(fists_of_fury)
+ if BuffStacks(combo_breaker_bok) Spell(blackout_kick)
+ if {BuffStacks(combo_breaker_tp) and TimeToMaxEnergy() >=2 } or {BuffRemains(combo_breaker_tp) <=2 and BuffStacks(combo_breaker_tp) } Spell(tiger_palm)
+ if TalentPoints(chi_wave_talent) and TimeToMaxEnergy() >2 Spell(chi_wave)
+ if TalentPoints(ascension_talent) and Chi() <=3 Spell(jab)
+ if not TalentPoints(ascension_talent) and Chi() <=2 Spell(jab)
+ if {Energy() +{EnergyRegen() *{SpellCooldown(rising_sun_kick) } } } >=40 Spell(blackout_kick)
+
+}
+AddIcon mastery=3 help=offgcd
+{
+ if TalentPoints(power_strikes_talent) and BuffStacks(chi_sphere) and Chi() <4 Spell(chi_sphere)
+ if not BuffPresent(tigereye_brew_use) Spell(tigereye_brew)
+ if TimeToMaxEnergy() >5 Spell(energizing_brew)
+}
+AddIcon mastery=3 help=aoe
+{
+
+ if Chi() ==4 Spell(rising_sun_kick)
+ Spell(spinning_crane_kick)
+
+}
+AddIcon mastery=3 help=cd
+{
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(berserking)
+ if TalentPoints(chi_brew_talent) and Chi() ==0 Spell(chi_brew)
+ if TalentPoints(invoke_xuen_talent) Spell(invoke_xuen)
+}
+]]
+
+ OvaleScripts:RegisterScript("MONK", name, desc, code)
+end
diff --git a/class/Paladin.lua b/class/Paladin.lua
new file mode 100644
index 0000000..5793717
--- /dev/null
+++ b/class/Paladin.lua
@@ -0,0 +1,108 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Retribution"
+ local code = [[
+Define(avenging_wrath 31884)
+ SpellInfo(avenging_wrath duration=20 cd=180 )
+ SpellAddBuff(avenging_wrath avenging_wrath=1)
+Define(blessing_of_kings 20217)
+ SpellInfo(blessing_of_kings duration=3600 )
+ SpellAddBuff(blessing_of_kings blessing_of_kings=1)
+Define(blessing_of_might 19740)
+ SpellInfo(blessing_of_might duration=3600 )
+ SpellAddBuff(blessing_of_might blessing_of_might=1)
+Define(crusader_strike 35395)
+ SpellInfo(crusader_strike holy=-1 cd=4.5 )
+Define(divine_storm 53385)
+ SpellInfo(divine_storm holy=3 )
+Define(execution_sentence_aura 114916)
+ SpellInfo(execution_sentence_aura duration=10 tick=1 haste=spell )
+Define(execution_sentence 114157)
+ SpellInfo(execution_sentence cd=60)
+ SpellAddTargetDebuff(execution_sentence execution_sentence_aura=1)
+Define(exorcism 879)
+ SpellInfo(exorcism holy=-1 cd=15 )
+Define(exorcism_glyphed 122032)
+ SpellInfo(exorcism_glyphed holy=-1 cd=15)
+Define(glyph_of_double_jeopardy 121027)
+ SpellInfo(glyph_of_double_jeopardy duration=10 )
+ SpellAddBuff(glyph_of_double_jeopardy glyph_of_double_jeopardy=1)
+Define(guardian_of_ancient_kings 86698)
+ SpellInfo(guardian_of_ancient_kings duration=30 cd=300 )
+ SpellAddBuff(guardian_of_ancient_kings guardian_of_ancient_kings=1)
+Define(hammer_of_the_righteous 53595)
+ SpellInfo(hammer_of_the_righteous holy=-1 cd=4.5 )
+Define(hammer_of_wrath 24275)
+ SpellInfo(hammer_of_wrath holy=-0 cd=6 )
+Define(inquisition 84963)
+ SpellInfo(inquisition duration=10 holy=1 )
+ SpellAddBuff(inquisition inquisition=1)
+Define(judgment 20271)
+ SpellInfo(judgment cd=6 )
+Define(rebuke 96231)
+ SpellInfo(rebuke duration=4 cd=15 )
+Define(seal_of_righteousness 20154)
+ SpellAddBuff(seal_of_righteousness seal_of_righteousness=1)
+Define(seal_of_truth 31801)
+ SpellAddBuff(seal_of_truth seal_of_truth=1)
+Define(templars_verdict 85256)
+ SpellInfo(templars_verdict holy=3 )
+Define(glyph_of_mass_exorcism 122028)
+AddCheckBox(showwait L(showwait) default)
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(str_agi_int any=1) Spell(blessing_of_kings)
+ if not BuffPresent(mastery any=1) and not BuffPresent(str_agi_int any=1) Spell(blessing_of_might)
+ unless Stance(1) Spell(seal_of_truth)
+ }
+ if {BuffExpires(inquisition) or BuffRemains(inquisition) <=2 } and {HolyPower() >=3 or target.DeadIn() <HolyPower() *10 } Spell(inquisition)
+ if HolyPower() ==5 Spell(templars_verdict)
+ Spell(hammer_of_wrath usable=1)
+ if SpellCooldown(hammer_of_wrath) >0 and SpellCooldown(hammer_of_wrath) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ if Glyph(glyph_of_mass_exorcism no)
+ {
+ Spell(exorcism)
+ if SpellCooldown(exorcism) >0 and SpellCooldown(exorcism) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ }
+ if Glyph(glyph_of_mass_exorcism)
+ {
+ Spell(exorcism_glyphed)
+ if SpellCooldown(exorcism_glyphed) >0 and SpellCooldown(exorcism_glyphed) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ }
+ if not {ArmorSetParts(T15 more 4) } and {target.HealthPercent() <=20 or BuffPresent(avenging_wrath) } Spell(judgment)
+ Spell(crusader_strike)
+ if SpellCooldown(crusader_strike) >0 and SpellCooldown(crusader_strike) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ Spell(judgment)
+ if BuffRemains(inquisition) >4 Spell(templars_verdict)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if target.IsInterruptible() Spell(rebuke)
+ if BuffPresent(inquisition) Spell(execution_sentence)
+}
+AddIcon mastery=3 help=aoe
+{
+ if not InCombat()
+ {
+ unless Stance(2) Spell(seal_of_righteousness)
+ }
+ if {HolyPower() ==5 } Spell(divine_storm)
+ Spell(hammer_of_the_righteous)
+ if BuffPresent(glyph_of_double_jeopardy) focus.Spell(judgment)
+ if BuffRemains(inquisition) >4 Spell(divine_storm)
+}
+AddIcon mastery=3 help=cd
+{
+ if BuffPresent(inquisition) Spell(avenging_wrath)
+ if BuffPresent(avenging_wrath) Spell(guardian_of_ancient_kings)
+ if BuffPresent(inquisition) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+}
+]]
+
+ OvaleScripts:RegisterScript("PALADIN", name, desc, code)
+end
diff --git a/class/Priest.lua b/class/Priest.lua
new file mode 100644
index 0000000..c56b720
--- /dev/null
+++ b/class/Priest.lua
@@ -0,0 +1,128 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Shadow"
+ local code = [[
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(cascade 120785)
+ SpellInfo(cascade duration=0.1 )
+Define(devouring_plague 2944)
+ SpellInfo(devouring_plague duration=6 tick=1 shadoworbs=1 haste=spell )
+ SpellAddTargetDebuff(devouring_plague devouring_plague=1)
+Define(dispersion 47585)
+ SpellInfo(dispersion duration=6 cd=120 )
+ SpellAddBuff(dispersion dispersion=1)
+Define(divine_insight_shadow 124430)
+ SpellInfo(divine_insight_shadow duration=12 )
+ SpellAddBuff(divine_insight_shadow divine_insight_shadow=1)
+Define(divine_star 110744)
+ SpellInfo(divine_star cd=15 )
+Define(halo 120517)
+ SpellInfo(halo duration=5.5 cd=40 )
+Define(inner_fire 588)
+ SpellAddBuff(inner_fire inner_fire=1)
+Define(inner_will 73413)
+ SpellAddBuff(inner_will inner_will=1)
+Define(mind_blast 8092)
+ SpellInfo(mind_blast shadoworbs=-1 cd=8)
+Define(mind_flay 15407)
+ SpellInfo(mind_flay duration=3 canStopChannelling=1 )
+ SpellAddTargetDebuff(mind_flay mind_flay=1)
+Define(mind_flay_insanity 129197)
+ SpellInfo(mind_flay_insanity duration=3 tick=1 haste=spell canStopChannelling=1 )
+ SpellAddTargetDebuff(mind_flay_insanity mind_flay_insanity=1)
+Define(mind_sear 48045)
+ SpellInfo(mind_sear duration=5 canStopChannelling=1 )
+ SpellAddBuff(mind_sear mind_sear=1)
+Define(mind_spike 73510)
+Define(mindbender 123040)
+ SpellInfo(mindbender duration=15 cd=60 )
+Define(power_infusion 10060)
+ SpellInfo(power_infusion duration=20 cd=120 )
+ SpellAddBuff(power_infusion power_infusion=1)
+Define(power_word_fortitude 21562)
+ SpellInfo(power_word_fortitude duration=3600 )
+ SpellAddBuff(power_word_fortitude power_word_fortitude=1)
+Define(shadow_word_death 32379)
+ SpellInfo(shadow_word_death cd=8 )
+Define(shadow_word_pain 589)
+ SpellInfo(shadow_word_pain duration=18 tick=3 haste=spell )
+ SpellAddTargetDebuff(shadow_word_pain shadow_word_pain=1)
+Define(shadowfiend 34433)
+ SpellInfo(shadowfiend duration=12 cd=180 )
+Define(shadowform 15473)
+ SpellAddBuff(shadowform shadowform=1)
+Define(surge_of_darkness 87160)
+ SpellInfo(surge_of_darkness duration=10 )
+ SpellAddBuff(surge_of_darkness surge_of_darkness=1)
+Define(vampiric_embrace 15286)
+ SpellInfo(vampiric_embrace duration=15 cd=180 )
+ SpellAddBuff(vampiric_embrace vampiric_embrace=1)
+Define(vampiric_touch 34914)
+ SpellInfo(vampiric_touch duration=15 tick=3 haste=spell )
+ SpellAddTargetDebuff(vampiric_touch vampiric_touch=1)
+Define(cascade_talent 16)
+Define(divine_star_talent 17)
+Define(halo_talent 18)
+Define(mindbender_talent 8)
+Define(power_infusion_talent 14)
+AddCheckBox(showwait L(showwait) default)
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(stamina any=1) Spell(power_word_fortitude)
+ if BuffExpires(inner_fire) and BuffExpires(inner_will) Spell(inner_fire)
+ if BuffExpires(shadowform) Spell(shadowform)
+ }
+ if BuffExpires(shadowform) Spell(shadowform)
+ if TalentPoints(mindbender_talent) Spell(mindbender)
+ if ShadowOrbs() ==3 and {SpellCooldown(mind_blast) <1.5 or target.HealthPercent() <20 and SpellCooldown(shadow_word_death) <1.5 } Spell(devouring_plague)
+ if target.HealthPercent(less 20) Spell(shadow_word_death)
+ Spell(mind_blast)
+ if target.TicksRemain(devouring_plague) ==1 Spell(mind_flay_insanity)
+ Spell(mind_flay_insanity)
+ if not target.DebuffPresent(shadow_word_pain) Spell(shadow_word_pain)
+ if target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) Spell(vampiric_touch)
+ if BuffStacks(surge_of_darkness) ==2 Spell(mind_spike)
+ if target.TicksRemain(shadow_word_pain) <=1 Spell(shadow_word_pain)
+ if target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) +TickTime(vampiric_touch) Spell(vampiric_touch)
+ if ShadowOrbs() ==3 and target.TicksRemain(devouring_plague) <=1 Spell(devouring_plague)
+ if TalentPoints(halo_talent) Spell(halo)
+ if TalentPoints(cascade_talent) Spell(cascade)
+ if target.HealthPercent() <20 and SpellCooldown(shadow_word_death) <0.5 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ if SpellCooldown(mind_blast) <0.5 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ if BuffStacks(surge_of_darkness) Spell(mind_spike)
+ Spell(mind_flay)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if TalentPoints(divine_star_talent) Spell(divine_star)
+}
+AddIcon mastery=3 help=moving
+{
+ if target.HealthPercent(less 20) Spell(shadow_word_death)
+ if BuffStacks(divine_insight_shadow) and SpellCooldown(mind_blast) Spell(mind_blast)
+ Spell(shadow_word_pain)
+}
+AddIcon mastery=3 help=aoe
+{
+ Spell(mind_sear)
+}
+AddIcon mastery=3 help=cd
+{
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if not TalentPoints(mindbender_talent) Spell(shadowfiend)
+ if TalentPoints(power_infusion_talent) Spell(power_infusion)
+ Spell(berserking)
+ if ShadowOrbs() ==3 and Health() <=40 Spell(vampiric_embrace)
+ Spell(dispersion)
+}
+]]
+
+ OvaleScripts:RegisterScript("PRIEST", name, desc, code)
+end
diff --git a/class/Rogue.lua b/class/Rogue.lua
new file mode 100644
index 0000000..c575617
--- /dev/null
+++ b/class/Rogue.lua
@@ -0,0 +1,209 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Assassination, Combat, Subtlety"
+ local code = [[
+Define(adrenaline_rush 13750)
+ SpellInfo(adrenaline_rush duration=15 cd=180 )
+ SpellAddBuff(adrenaline_rush adrenaline_rush=1)
+Define(ambush 8676)
+ SpellInfo(ambush energy=60 combo=2 buff_combo=shadow_blades )
+Define(anticipation 114015)
+Define(backstab 53)
+ SpellInfo(backstab energy=35 combo=1 buff_combo=shadow_blades )
+Define(bandits_guile 84654)
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(deep_insight 84747)
+ SpellInfo(deep_insight duration=15 )
+ SpellAddBuff(deep_insight deep_insight=1)
+Define(dispatch 111240)
+ SpellInfo(dispatch energy=30 combo=1 buff_combo=shadow_blades )
+Define(envenom 32645)
+ SpellInfo(envenom duration=1 combo=0 energy=35 )
+ SpellAddBuff(envenom envenom=1)
+Define(eviscerate 2098)
+ SpellInfo(eviscerate combo=0 energy=35 )
+Define(expose_armor 8647)
+ SpellInfo(expose_armor energy=25 combo=1 buff_combo=shadow_blades )
+ AddCheckBox(expose_armor_check SpellName(expose_armor))
+Define(find_weakness 91021)
+ SpellInfo(find_weakness duration=10 )
+ SpellAddBuff(find_weakness find_weakness=1)
+Define(hemorrhage 16511)
+ SpellInfo(hemorrhage energy=30 combo=1 buff_combo=shadow_blades )
+Define(honor_among_thieves 51701)
+Define(kick 1766)
+ SpellInfo(kick duration=5 cd=15 )
+Define(killing_spree 51690)
+ SpellInfo(killing_spree duration=3 cd=120 )
+ SpellAddBuff(killing_spree killing_spree=1)
+Define(master_of_subtlety 31223)
+Define(mutilate 1329)
+ SpellInfo(mutilate energy=55 combo=2 buff_combo=shadow_blades )
+Define(premeditation 14183)
+ SpellInfo(premeditation duration=18 combo=2 cd=20 )
+Define(preparation 14185)
+ SpellInfo(preparation cd=300 )
+Define(revealing_strike 84617)
+ SpellInfo(revealing_strike duration=24 tick=3 energy=40 combo=1 buff_combo=shadow_blades )
+ SpellAddTargetDebuff(revealing_strike revealing_strike=1)
+Define(rupture 1943)
+ SpellInfo(rupture duration=4 tick=2 combo=0 energy=25 )
+ SpellAddTargetDebuff(rupture rupture=1)
+Define(shadow_blades 121471)
+ SpellInfo(shadow_blades duration=12 cd=180 )
+ SpellAddBuff(shadow_blades shadow_blades=1)
+Define(shadow_dance 51713)
+ SpellInfo(shadow_dance duration=8 cd=60 )
+ SpellAddBuff(shadow_dance shadow_dance=1)
+Define(sinister_strike 1752)
+ SpellInfo(sinister_strike energy=40 combo=1 buff_combo=shadow_blades )
+Define(slice_and_dice 5171)
+ SpellInfo(slice_and_dice duration=6 combo=0 energy=25 )
+ SpellAddBuff(slice_and_dice slice_and_dice=1)
+Define(stealth 63880)
+Define(stealthed 1784)
+ SpellInfo(stealthed cd=6 )
+ SpellAddBuff(stealthed stealthed=1)
+Define(tricks_of_the_trade 57933)
+ SpellInfo(tricks_of_the_trade duration=6 )
+ SpellAddBuff(tricks_of_the_trade tricks_of_the_trade=1)
+Define(vanish 1856)
+ SpellInfo(vanish cd=120 )
+ SpellAddBuff(vanish vanish=1)
+Define(vendetta 79140)
+ SpellInfo(vendetta duration=20 cd=120 )
+ SpellAddBuff(vendetta vendetta=1)
+Define(weakened_armor 113746)
+ SpellInfo(weakened_armor duration=30 )
+ SpellAddBuff(weakened_armor weakened_armor=1)
+Define(anticipation_talent 18)
+Define(shadow_focus_talent 3)
+Define(subterfuge_talent 2)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if WeaponEnchantExpires(mainhand 300) Item(6497)
+ }
+ if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
+ Spell(ambush usable=1)
+ if BuffRemains(slice_and_dice) <2 Spell(slice_and_dice)
+ if target.TicksRemain(rupture) <2 and Energy() >90 Spell(dispatch usable=1)
+ if target.TicksRemain(rupture) <2 and Energy() >90 Spell(mutilate)
+ if target.TicksRemain(rupture) <2 or {ComboPoints() ==5 and target.TicksRemain(rupture) <3 } Spell(rupture)
+ if ComboPoints() >4 Spell(envenom)
+ if ComboPoints() >=2 and BuffRemains(slice_and_dice) <3 Spell(envenom)
+ if ComboPoints() <5 Spell(dispatch usable=1)
+ Spell(mutilate)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if not InCombat()
+ {
+ Spell(stealth)
+ }
+ if target.IsInterruptible() Spell(kick)
+ Spell(tricks_of_the_trade)
+}
+AddIcon mastery=1 help=cd
+{
+ if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(berserking)
+ if TimeInCombat() >10 and not BuffPresent(stealthed) and not BuffPresent(shadow_blades) Spell(vanish)
+ if {BuffStacks(bloodlust any=1) or TimeInCombat() >60 } Spell(shadow_blades)
+ Spell(vendetta)
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if WeaponEnchantExpires(mainhand 300) Item(6497)
+ }
+ if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
+ Spell(ambush usable=1)
+ if BuffRemains(slice_and_dice) <2 or {BuffRemains(slice_and_dice) <15 and BuffStacks(bandits_guile) ==11 and ComboPoints() >=4 } Spell(slice_and_dice)
+ if ComboPoints() <5 or not target.DebuffPresent(revealing_strike)
+ {
+ if target.TicksRemain(revealing_strike) <2 Spell(revealing_strike)
+ Spell(sinister_strike)
+ }
+ if not TalentPoints(anticipation_talent) or BuffPresent(deep_insight) or SpellCooldown(shadow_blades) <=11 or BuffStacks(anticipation) >=4 or {BuffPresent(shadow_blades) and BuffStacks(anticipation) >=3 }
+ {
+ if target.TicksRemain(rupture) <2 and target.DeadIn() >=26 Spell(rupture)
+ Spell(eviscerate)
+ }
+ if Energy() >60 or BuffExpires(deep_insight) or BuffRemains(deep_insight) >5 -ComboPoints()
+ {
+ if target.TicksRemain(revealing_strike) <2 Spell(revealing_strike)
+ Spell(sinister_strike)
+ }
+}
+AddIcon mastery=2 help=offgcd
+{
+ if not InCombat()
+ {
+ Spell(stealth)
+ }
+ if target.IsInterruptible() Spell(kick)
+}
+AddIcon mastery=2 help=cd
+{
+ if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
+ if TimeInCombat() ==0 or BuffPresent(shadow_blades) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if TimeInCombat() ==0 or BuffPresent(shadow_blades) Spell(berserking)
+ if TimeInCombat() >10 and {ComboPoints() <3 or {TalentPoints(anticipation_talent) and BuffStacks(anticipation) <3 } or {BuffExpires(shadow_blades) and {ComboPoints() <4 or {TalentPoints(anticipation_talent) and BuffStacks(anticipation) <4 } } } } and {{TalentPoints(shadow_focus_talent) and BuffExpires(adrenaline_rush) and Energy() <20 } or {TalentPoints(subterfuge_talent) and Energy() >=90 } or {not TalentPoints(shadow_focus_talent) and not TalentPoints(subterfuge_talent) and Energy() >=60 } } Spell(vanish)
+ if not ArmorSetParts(T14 more 4) and TimeInCombat() >5 Spell(shadow_blades)
+ if not ArmorSetParts(T14 more 4) and Energy() <35 and BuffExpires(adrenaline_rush) Spell(killing_spree)
+ if not ArmorSetParts(T14 more 4) and {Energy() <35 or BuffPresent(shadow_blades) } Spell(adrenaline_rush)
+ if ArmorSetParts(T14 more 4) and {{SpellCooldown(killing_spree) >30.5 and SpellCooldown(adrenaline_rush) <=9 } or {Energy() <35 and {SpellCooldown(killing_spree) ==0 or SpellCooldown(adrenaline_rush) ==0 } } } Spell(shadow_blades)
+ if ArmorSetParts(T14 more 4) and {{BuffPresent(shadow_blades) and BuffExpires(adrenaline_rush) and {Energy() <35 or BuffRemains(shadow_blades) <=3.5 } } or {BuffExpires(shadow_blades) and SpellCooldown(shadow_blades) >30 } } Spell(killing_spree)
+ if ArmorSetParts(T14 more 4) and BuffPresent(shadow_blades) and {Energy() <35 or BuffRemains(shadow_blades) <=15 } Spell(adrenaline_rush)
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if WeaponEnchantExpires(mainhand 300) Item(6497)
+ Spell(slice_and_dice)
+ }
+ if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
+ if ComboPoints() <=5 and BuffStacks(anticipation) ==0 Spell(ambush usable=1)
+ if BuffRemains(slice_and_dice) <3 and ComboPoints() ==5 Spell(slice_and_dice)
+ if ComboPoints() ==5 and target.DebuffRemains(rupture) <5 Spell(rupture)
+ if BuffStacks(anticipation) <3 and BuffRemains(shadow_dance) <=2 Spell(ambush usable=1)
+ if ComboPoints() ==5 Spell(eviscerate)
+ if ComboPoints() <4 and {target.DebuffRemains(hemorrhage) <4 or target.TargetIsPlayer() } Spell(hemorrhage)
+ if ComboPoints() <5 and Energy() >80 and {target.DebuffRemains(hemorrhage) <4 or target.TargetIsPlayer() } Spell(hemorrhage)
+ if ComboPoints() <4 and {SpellCooldown(shadow_dance) >7 or {SpellCooldown(shadow_dance) ==0 and TimeInCombat() <=9 } } Spell(backstab)
+ if ComboPoints() <5 and Energy() >80 and SpellCooldown(shadow_dance) >=2 Spell(backstab)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if not InCombat()
+ {
+ Spell(stealth)
+ Spell(premeditation usable=1)
+ }
+ if target.IsInterruptible() Spell(kick)
+ if Energy() >=75 and BuffExpires(stealthed) and not target.DebuffPresent(find_weakness) Spell(shadow_dance)
+ if {ComboPoints() <=3 and SpellCooldown(honor_among_thieves) >1.75 } or ComboPoints() <=2 Spell(premeditation usable=1)
+ Spell(tricks_of_the_trade)
+}
+AddIcon mastery=3 help=cd
+{
+ if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
+ Spell(shadow_blades)
+ if BuffPresent(shadow_dance) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if BuffPresent(shadow_dance) Spell(berserking)
+ if TimeInCombat() >10 and Energy() >=45 and Energy() <=75 and ComboPoints() <=3 and not BuffPresent(shadow_dance) and not BuffPresent(master_of_subtlety) and not target.DebuffPresent(find_weakness) Spell(vanish)
+}
+]]
+
+ OvaleScripts:RegisterScript("ROGUE", name, desc, code)
+end
diff --git a/class/Shaman.lua b/class/Shaman.lua
new file mode 100644
index 0000000..e892728
--- /dev/null
+++ b/class/Shaman.lua
@@ -0,0 +1,219 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Elemental, Enhancement"
+ local code = [[
+Define(ancestral_swiftness 16188)
+ SpellInfo(ancestral_swiftness cd=90 )
+ SpellAddBuff(ancestral_swiftness ancestral_swiftness=1)
+Define(ascendance 114049)
+ SpellInfo(ascendance cd=180 )
+Define(berserking 26297)
+ SpellInfo(berserking duration=10 cd=180 )
+ SpellAddBuff(berserking berserking=1)
+Define(blood_fury 20572)
+ SpellInfo(blood_fury duration=15 cd=120 )
+ SpellAddBuff(blood_fury blood_fury=1)
+Define(bloodlust 2825)
+ SpellInfo(bloodlust duration=40 cd=300 )
+ SpellAddBuff(bloodlust bloodlust=1)
+Define(chain_lightning 421)
+ SpellInfo(chain_lightning cd=3 )
+Define(earth_elemental_totem 2062)
+ SpellInfo(earth_elemental_totem duration=60 cd=300 )
+Define(earth_shock 8042)
+ SpellInfo(earth_shock sharedcd=shock cd=6 )
+Define(earthquake 61882)
+ SpellInfo(earthquake duration=10 cd=10 )
+ SpellAddBuff(earthquake earthquake=1)
+Define(elemental_blast 117014)
+ SpellInfo(elemental_blast cd=12 )
+Define(elemental_mastery 16166)
+ SpellInfo(elemental_mastery duration=20 cd=90 )
+ SpellAddBuff(elemental_mastery elemental_mastery=1)
+Define(feral_spirit 51533)
+ SpellInfo(feral_spirit duration=30 cd=120 )
+Define(fire_elemental_totem 2894)
+ SpellInfo(fire_elemental_totem duration=60 cd=300 )
+Define(fire_nova 1535)
+ SpellInfo(fire_nova cd=4 )
+Define(flame_shock 8050)
+ SpellInfo(flame_shock duration=30 tick=3 haste=spell sharedcd=shock cd=6 )
+ SpellAddTargetDebuff(flame_shock flame_shock=1)
+Define(flametongue_weapon 8024)
+Define(heroism 32182)
+ SpellInfo(heroism duration=40 cd=300 )
+ SpellAddBuff(heroism heroism=1)
+Define(lava_beam 114074)
+Define(lava_burst 51505)
+ SpellInfo(lava_burst cd=8 )
+Define(lava_lash 60103)
+ SpellInfo(lava_lash cd=10 )
+Define(lava_surge 77756)
+Define(lifeblood 138724)
+ SpellInfo(lifeblood mana=-9935 )
+ SpellAddBuff(lifeblood lifeblood=1)
+Define(lightning_bolt 403)
+Define(lightning_shield 324)
+ SpellInfo(lightning_shield duration=3600 )
+ SpellAddBuff(lightning_shield lightning_shield=1)
+Define(maelstrom_weapon 53817)
+ SpellInfo(maelstrom_weapon duration=30 )
+ SpellAddBuff(maelstrom_weapon maelstrom_weapon=1)
+Define(magma_totem 8187)
+Define(searing_totem 3599)
+ SpellInfo(searing_totem duration=60 )
+Define(spiritwalkers_grace 79206)
+ SpellInfo(spiritwalkers_grace duration=15 cd=120 )
+ SpellAddBuff(spiritwalkers_grace spiritwalkers_grace=1)
+Define(stormblast 115356)
+ SpellInfo(stormblast duration=15 sharedcd=strike cd=8 )
+ SpellAddBuff(stormblast stormblast=1)
+Define(stormlash 120687)
+Define(stormlash_totem 120668)
+ SpellInfo(stormlash_totem duration=10 cd=300 )
+Define(stormstrike 17364)
+ SpellInfo(stormstrike duration=15 sharedcd=strike cd=8 )
+ SpellAddBuff(stormstrike stormstrike=1)
+Define(strike 138537)
+ SpellInfo(strike energy=40 )
+Define(thunderstorm 51490)
+ SpellInfo(thunderstorm duration=5 cd=45 )
+ SpellAddBuff(thunderstorm thunderstorm=1)
+Define(unleash_elements 73680)
+ SpellInfo(unleash_elements cd=15 )
+Define(unleash_flame 73683)
+ SpellInfo(unleash_flame duration=8 )
+ SpellAddBuff(unleash_flame unleash_flame=1)
+Define(wind_shear 57994)
+ SpellInfo(wind_shear duration=3 cd=12 )
+Define(windfury_weapon 8232)
+Define(ancestral_swiftness_talent 11)
+Define(elemental_blast_talent 18)
+Define(elemental_mastery_talent 10)
+Define(unleashed_fury_talent 16)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if WeaponEnchantExpires(mainhand) main.Spell(flametongue_weapon)
+ if not BuffPresent(lightning_shield) Spell(lightning_shield)
+ }
+
+ if TalentPoints(unleashed_fury_talent) and not BuffPresent(ascendance) Spell(unleash_elements)
+ if target.DebuffRemains(flame_shock) >CastTime(lava_burst) and {BuffPresent(ascendance) or SpellCooldown(lava_burst) } Spell(lava_burst)
+ if target.TicksRemain(flame_shock) <2 Spell(flame_shock)
+ if TalentPoints(elemental_blast_talent) Spell(elemental_blast)
+ if BuffStacks(lightning_shield) ==7 Spell(earth_shock)
+ if BuffStacks(lightning_shield) >3 and target.DebuffRemains(flame_shock) >SpellCooldown(earth_shock) and target.DebuffRemains(flame_shock) <SpellCooldown(earth_shock) +TickTime(flame_shock) Spell(earth_shock)
+ if TimeInCombat() >60 and target.DebuffRemains(flame_shock) <=BuffDuration(ascendance) and SpellCooldown(ascendance) +BuffDuration(ascendance) <BuffDuration(flame_shock) Spell(flame_shock)
+ if SpellCooldown(fire_elemental_totem) >20 and not TotemPresent(fire) Spell(searing_totem)
+ Spell(lightning_bolt)
+
+}
+AddIcon mastery=1 help=offgcd
+{
+ if target.IsInterruptible() Spell(wind_shear)
+}
+AddIcon mastery=1 help=aoe
+{
+
+ Spell(lava_beam)
+ if not TotemPresent(fire) Spell(magma_totem)
+ if Enemies() <=2 and not TotemPresent(fire) Spell(searing_totem)
+ if Enemies() <3 and target.DebuffRemains(flame_shock) >CastTime(lava_burst) and SpellCooldown(lava_burst) Spell(lava_burst)
+ if not target.DebuffPresent(flame_shock) and Enemies() <3 Spell(flame_shock)
+ Spell(earthquake)
+ if ManaPercent() <80 Spell(thunderstorm)
+ if ManaPercent() >10 Spell(chain_lightning)
+ Spell(lightning_bolt)
+
+}
+AddIcon mastery=1 help=cd
+{
+ if target.HealthPercent() <25 or TimeInCombat() >5 { Spell(bloodlust) Spell(heroism) }
+ if not TotemPresent(air) and not BuffPresent(stormlash) and {BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } Spell(stormlash_totem)
+ if BuffPresent(bloodlust any=1) or BuffPresent(ascendance) or {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } Spell(blood_fury)
+ if TalentPoints(elemental_mastery_talent) and {TimeInCombat() >15 and {{not BuffPresent(bloodlust any=1) and TimeInCombat() <120 } or {not BuffPresent(berserking) and not BuffPresent(bloodlust any=1) and BuffPresent(ascendance) } or {TimeInCombat() >=200 and {SpellCooldown(ascendance) >30 or Level() <87 } } } } Spell(elemental_mastery)
+ if not TotemPresent(fire) Spell(fire_elemental_totem)
+ if Enemies() >1 or {target.DebuffRemains(flame_shock) >BuffDuration(ascendance) and {target.DeadIn() <20 or BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } and SpellCooldown(lava_burst) >0 } Spell(ascendance)
+
+ if {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } or BuffPresent(ascendance) or BuffPresent(bloodlust any=1) or TotemPresent(fire) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if TalentPoints(ancestral_swiftness_talent) and not BuffPresent(ascendance) Spell(ancestral_swiftness)
+ if BuffPresent(ascendance) Spell(spiritwalkers_grace)
+ if not TotemPresent(earth) and SpellCooldown(fire_elemental_totem) >=60 Spell(earth_elemental_totem)
+ if {{TalentPoints(elemental_blast_talent) and SpellCooldown(elemental_blast) ==0 } or {SpellCooldown(lava_burst) ==0 and not BuffStacks(lava_surge) } } or {BuffDuration(raid_movement) >=SpellCooldown(unleash_elements) +SpellCooldown(earth_shock) } Spell(spiritwalkers_grace)
+
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if WeaponEnchantExpires(mainhand) main.Spell(windfury_weapon)
+ if WeaponEnchantExpires(offhand) off.Spell(flametongue_weapon)
+ if not BuffPresent(lightning_shield) Spell(lightning_shield)
+ }
+
+ if not TotemPresent(fire) Spell(searing_totem)
+ if TalentPoints(unleashed_fury_talent) Spell(unleash_elements)
+ if TalentPoints(elemental_blast_talent) and BuffStacks(maelstrom_weapon) >=1 Spell(elemental_blast)
+ if BuffStacks(maelstrom_weapon) ==5 or {ArmorSetParts(T13 more 4) ==1 and BuffStacks(maelstrom_weapon) >=4 and False() } Spell(lightning_bolt)
+ Spell(stormblast)
+ Spell(stormstrike)
+ if BuffPresent(unleash_flame) and not target.DebuffPresent(flame_shock) Spell(flame_shock)
+ Spell(lava_lash)
+ if ArmorSetParts(T15 more 2) ==1 and BuffStacks(maelstrom_weapon) >=4 and not BuffPresent(ascendance) Spell(lightning_bolt)
+ if BuffPresent(unleash_flame) or {not BuffPresent(unleash_flame) and not target.DebuffPresent(flame_shock) and SpellCooldown(unleash_elements) >5 } Spell(flame_shock)
+ Spell(unleash_elements)
+ if BuffStacks(maelstrom_weapon) >=3 and not BuffPresent(ascendance) Spell(lightning_bolt)
+ if BuffPresent(ancestral_swiftness) Spell(lightning_bolt)
+ if BuffPresent(unleash_flame) and target.DebuffRemains(flame_shock) <=3 Spell(flame_shock)
+ Spell(earth_shock)
+ if BuffStacks(maelstrom_weapon) >1 and not BuffPresent(ascendance) Spell(lightning_bolt)
+
+}
+AddIcon mastery=2 help=offgcd
+{
+ if target.IsInterruptible() Spell(wind_shear)
+}
+AddIcon mastery=2 help=aoe
+{
+
+ if not TotemPresent(fire) Spell(magma_totem)
+ if Enemies() <=5 and not TotemPresent(fire) Spell(searing_totem)
+ if {Enemies() <=5 and DebuffCount(flame_shock) ==Enemies() } or DebuffCount(flame_shock) >=5 Spell(fire_nova)
+ if target.DebuffPresent(flame_shock) Spell(lava_lash)
+ if BuffStacks(maelstrom_weapon) >=3 Spell(chain_lightning)
+ Spell(unleash_elements)
+ if not target.DebuffPresent(flame_shock) Spell(flame_shock)
+ Spell(stormblast)
+ Spell(stormstrike)
+ if BuffStacks(maelstrom_weapon) ==5 and SpellCooldown(chain_lightning) >=2 Spell(lightning_bolt)
+ if BuffStacks(maelstrom_weapon) >1 Spell(chain_lightning)
+ if BuffStacks(maelstrom_weapon) >1 and not BuffPresent(ascendance) Spell(lightning_bolt)
+
+}
+AddIcon mastery=2 help=cd
+{
+ if target.HealthPercent() <25 or TimeInCombat() >5 { Spell(bloodlust) Spell(heroism) }
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ if not TotemPresent(air) and not BuffPresent(stormlash) and {BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } Spell(stormlash_totem)
+ Spell(blood_fury)
+ if TalentPoints(elemental_mastery_talent) and {not Glyph(55455) or SpellCooldown(fire_elemental_totem) ==0 or SpellCooldown(fire_elemental_totem) >70 } Spell(elemental_mastery)
+ if not TotemPresent(fire) and {BuffPresent(bloodlust any=1) or BuffPresent(lifeblood) or BuffPresent(elemental_mastery) } or TimeInCombat() >=60 Spell(fire_elemental_totem)
+ if not TotemPresent(fire) and target.DeadIn() <=0 +10 Spell(fire_elemental_totem)
+ if SpellCooldown(strike) >=3 Spell(ascendance)
+
+ if ArmorSetParts(T15 more 4) ==1 Spell(feral_spirit)
+ if TalentPoints(ancestral_swiftness_talent) and BuffStacks(maelstrom_weapon) <2 Spell(ancestral_swiftness)
+ Spell(feral_spirit)
+ if not TotemPresent(earth) and SpellCooldown(fire_elemental_totem) >=50 Spell(earth_elemental_totem)
+ Spell(spiritwalkers_grace)
+
+}
+]]
+
+ OvaleScripts:RegisterScript("SHAMAN", name, desc, code)
+end
diff --git a/class/Warlock.lua b/class/Warlock.lua
new file mode 100644
index 0000000..eea6ab4
--- /dev/null
+++ b/class/Warlock.lua
@@ -0,0 +1,310 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Affliction, Demonology, Destruction"
+ local code = [[
+Define(agony 980)
+ SpellInfo(agony duration=24 tick=2 haste=spell )
+ SpellAddTargetDebuff(agony agony=1)
+Define(backdraft 117896)
+Define(blood_fury 20572)
+ SpellInfo(blood_fury duration=15 cd=120 )
+ SpellAddBuff(blood_fury blood_fury=1)
+Define(chaos_bolt 116858)
+ SpellInfo(chaos_bolt burningembers=10 tick=1 haste=spell )
+ SpellAddTargetDebuff(chaos_bolt chaos_bolt=1)
+Define(conflagrate 17962)
+ SpellInfo(conflagrate duration=5 )
+ SpellAddBuff(conflagrate conflagrate=1)
+Define(corruption 172)
+ SpellInfo(corruption duration=18 tick=2 haste=spell stance=0)
+ SpellAddTargetDebuff(corruption corruption=1)
+Define(curse_of_the_elements 1490)
+ SpellInfo(curse_of_the_elements duration=300 )
+ SpellAddTargetDebuff(curse_of_the_elements aura_of_the_elements=1)
+Define(dark_intent 109773)
+ SpellInfo(dark_intent duration=3600 )
+ SpellAddBuff(dark_intent dark_intent=1)
+Define(dark_soul_instability 113858)
+ SpellInfo(dark_soul_instability duration=20 cd=120 )
+ SpellAddBuff(dark_soul_instability dark_soul_instability=1)
+Define(dark_soul_knowledge 113861)
+ SpellInfo(dark_soul_knowledge duration=20 cd=120 )
+ SpellAddBuff(dark_soul_knowledge dark_soul_knowledge=1)
+Define(dark_soul_misery 113860)
+ SpellInfo(dark_soul_misery duration=20 cd=120 )
+ SpellAddBuff(dark_soul_misery dark_soul_misery=1)
+Define(doom 603)
+ SpellInfo(doom duration=60 demonicfury=60 tick=15 haste=spell stance=1)
+ SpellAddTargetDebuff(doom doom=1)
+Define(drain_soul 1120)
+ SpellInfo(drain_soul duration=12 tick=2 haste=spell canStopChannelling=1 )
+ SpellAddTargetDebuff(drain_soul drain_soul=1)
+Define(fel_flame 77799)
+Define(felstorm 89751)
+ SpellInfo(felstorm duration=6 energy=60 cd=45 )
+ SpellAddBuff(felstorm felstorm=1)
+Define(fire_and_brimstone 108683)
+ SpellInfo(fire_and_brimstone burningembers=10 cd=1 )
+ SpellAddBuff(fire_and_brimstone fire_and_brimstone=1)
+Define(grimoire_of_sacrifice 108503)
+ SpellInfo(grimoire_of_sacrifice duration=3600 cd=30 )
+ SpellAddBuff(grimoire_of_sacrifice grimoire_of_sacrifice=1)
+Define(hand_of_guldan 105174)
+ SpellInfo(hand_of_guldan stance=0)
+Define(haunt 48181)
+ SpellInfo(haunt duration=8 tick=2 shards=1 )
+ SpellAddBuff(haunt haunt=1)
+Define(havoc 80240)
+ SpellInfo(havoc duration=15 cd=25 )
+ SpellAddBuff(havoc havoc=1)
+Define(hellfire 1949)
+ SpellInfo(hellfire duration=14 tick=1 haste=spell canStopChannelling=1 )
+ SpellAddTargetDebuff(hellfire hellfire=1)
+Define(immolate 348)
+ SpellInfo(immolate duration=15 tick=3 haste=spell )
+ SpellAddTargetDebuff(immolate immolate=1)
+Define(immolate_aoe 108686)
+ SpellInfo(immolate_aoe duration=15 tick=3 haste=spell )
+SpellList(immolate_debuff immolate immolate_aoe)
+Define(immolation_aura 104025)
+ SpellInfo(immolation_aura duration=10 demonicfury=0 stance=1)
+ SpellAddBuff(immolation_aura immolation_aura=1)
+Define(incinerate 29722)
+Define(life_tap 1454)
+ SpellInfo(life_tap mana=-15 )
+ SpellAddBuff(life_tap life_tap=1)
+Define(malefic_grasp 103103)
+ SpellInfo(malefic_grasp duration=4 tick=1 haste=spell canStopChannelling=1 )
+ SpellAddTargetDebuff(malefic_grasp malefic_grasp=1)
+Define(melee 103988)
+ SpellInfo(melee stance=1)
+Define(metamorphosis 103958)
+ SpellInfo(metamorphosis demonicfury=0 cd=10 )
+ SpellAddBuff(metamorphosis metamorphosis=1)
+Define(molten_core 122355)
+ SpellInfo(molten_core duration=30 )
+ SpellAddBuff(molten_core molten_core=1)
+Define(rain_of_fire 5740)
+ SpellInfo(rain_of_fire duration=6 )
+ SpellAddBuff(rain_of_fire rain_of_fire=1)
+Define(rain_of_fire_aftermath 104232)
+Define(seed_of_corruption 27243)
+ SpellInfo(seed_of_corruption duration=18 tick=3 haste=spell )
+ SpellAddTargetDebuff(seed_of_corruption seed_of_corruption=1)
+Define(service_felguard 111898)
+ SpellInfo(service_felguard cd=120 )
+Define(service_felhunter 111897)
+ SpellInfo(service_felhunter cd=120 )
+Define(shadow_bolt 686)
+ SpellInfo(shadow_bolt demonicfury=40 stance=0)
+Define(shadowburn 17877)
+ SpellInfo(shadowburn burningembers=10 )
+Define(shadowflame 47960)
+ SpellInfo(shadowflame duration=6 tick=1 haste=spell )
+ SpellAddTargetDebuff(shadowflame shadowflame=1)
+Define(skull_banner 114207)
+ SpellInfo(skull_banner duration=10 cd=180 )
+Define(soul_fire 6353)
+ SpellAddBuff(soul_fire molten_core=-1)
+Define(soul_swap 86121)
+Define(soulburn 74434)
+ SpellInfo(soulburn duration=30 shards=1 cd=1 )
+ SpellAddBuff(soulburn soulburn=1)
+Define(soulburn_seed_of_corruption 86664)
+Define(summon_doomguard 18540)
+ SpellInfo(summon_doomguard cd=600 )
+Define(summon_felguard 30146)
+ SpellInfo(summon_felguard demonicfury=0 )
+Define(summon_felhunter 691)
+ SpellInfo(summon_felhunter demonicfury=0 )
+Define(summon_infernal 1122)
+ SpellInfo(summon_infernal cd=600 )
+Define(touch_of_chaos 103964)
+ SpellInfo(touch_of_chaos demonicfury=40 stance=1)
+Define(unstable_affliction 30108)
+ SpellInfo(unstable_affliction duration=14 tick=2 haste=spell )
+ SpellAddTargetDebuff(unstable_affliction unstable_affliction=1)
+Define(void_ray 115422)
+ SpellInfo(void_ray demonicfury=40 )
+Define(wrathstorm 115831)
+ SpellInfo(wrathstorm duration=6 energy=60 cd=45 )
+ SpellAddBuff(wrathstorm wrathstorm=1)
+Define(grimoire_of_sacrifice_talent 15)
+Define(grimoire_of_service_talent 14)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
+ if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+ }
+ if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+ if BuffPresent(soulburn) Spell(soul_swap)
+ if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 +TickTime(haunt) and SoulShards() and target.HealthPercent() <=20 Spell(haunt)
+ if BuffExpires(dark_soul_misery) and BuffExpires(bloodlust any=1) and ManaPercent() <10 and target.HealthPercent() <=20 Spell(life_tap)
+ if target.HealthPercent() <=20 Spell(drain_soul)
+ if target.HealthPercent() <=20 Spell(life_tap)
+ if target.DebuffRemains(agony) <GCD() and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
+ if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 +TickTime(haunt) and {SoulShards() >2 or SpellCooldown(dark_soul_misery) >35 or {SoulShards() >1 and SpellCooldown(dark_soul_misery) <CastTime(haunt) } } and SoulShards() Spell(haunt)
+ if target.DebuffRemains(corruption) <GCD() and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
+ if target.DebuffRemains(unstable_affliction) <GCD() +CastTime(unstable_affliction) and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
+ if target.TicksRemain(agony) <=2 and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
+ if target.TicksRemain(corruption) <=2 and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
+ if {target.DebuffRemains(unstable_affliction) -CastTime(unstable_affliction) } /{BuffDuration(unstable_affliction) /Ticks(unstable_affliction) } <=2 and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
+ if SpellPower() >LastSpellSpellPower(agony) and target.TicksRemain(agony) <Ticks(agony) /2 and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
+ if SpellPower() >LastSpellSpellPower(corruption) and target.TicksRemain(corruption) <Ticks(corruption) /2 and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
+ if SpellPower() >LastSpellSpellPower(unstable_affliction) and target.TicksRemain(unstable_affliction) <Ticks(unstable_affliction) /2 and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
+ if BuffExpires(dark_soul_misery) and BuffExpires(bloodlust any=1) and ManaPercent() <50 Spell(life_tap)
+ Spell(malefic_grasp)
+ Spell(life_tap)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if not InCombat()
+ {
+ if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
+ }
+ if BuffPresent(dark_soul_misery) and {target.TicksRemain(agony) <=Ticks(agony) /2 or target.TicksRemain(corruption) <=Ticks(corruption) /2 or target.TicksRemain(unstable_affliction) <=Ticks(unstable_affliction) /2 } and SoulShards() Spell(soulburn)
+ if {target.TicksRemain(unstable_affliction) <=1 or target.TicksRemain(corruption) <=1 or target.TicksRemain(agony) <=1 } and SoulShards() and target.HealthPercent() <=20 Spell(soulburn)
+ if SpellPower() >LastSpellSpellPower(unstable_affliction) and target.TicksRemain(unstable_affliction) <=Ticks(unstable_affliction) /2 and SoulShards() and target.HealthPercent() <=20 Spell(soulburn)
+}
+AddIcon mastery=1 help=moving
+{
+ if ManaPercent() <80 and ManaPercent() <target.HealthPercent() Spell(life_tap)
+ Spell(fel_flame)
+}
+AddIcon mastery=1 help=aoe
+{
+
+ if BuffExpires(soulburn) and not target.DebuffPresent(soulburn_seed_of_corruption) and not InFlightToTarget(soulburn_seed_of_corruption) and SoulShards() Spell(soulburn)
+ if BuffPresent(soulburn) and not target.DebuffPresent(agony) and not target.DebuffPresent(corruption) Spell(soul_swap)
+ if BuffPresent(soulburn) and target.DebuffPresent(corruption) and not target.DebuffPresent(agony) Spell(soul_swap)
+ if {BuffExpires(soulburn) and not InFlightToTarget(seed_of_corruption) and not target.DebuffPresent(seed_of_corruption) } or {BuffPresent(soulburn) and not target.DebuffPresent(soulburn_seed_of_corruption) and not InFlightToTarget(soulburn_seed_of_corruption) } Spell(seed_of_corruption)
+ if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 and SoulShards() Spell(haunt)
+ if ManaPercent() <70 Spell(life_tap)
+ if not InFlightToTarget(fel_flame) Spell(fel_flame)
+
+}
+AddIcon mastery=1 help=cd
+{
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(blood_fury)
+ Spell(dark_soul_misery)
+ Spell(summon_doomguard)
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
+ if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felguard) Spell(summon_felguard)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felguard)
+ }
+ if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felguard)
+ if BuffPresent(metamorphosis) and target.DebuffPresent(corruption) and target.DebuffRemains(corruption) <1.5 Spell(touch_of_chaos)
+ if BuffPresent(metamorphosis) and {target.TicksRemain(doom) <=1 or {target.TicksRemain(doom) +1 <Ticks(doom) and BuffPresent(dark_soul_knowledge) } } and target.DeadIn() >=30 Spell(doom)
+ if BuffPresent(metamorphosis) and target.DebuffPresent(corruption) and target.DebuffRemains(corruption) <20 Spell(touch_of_chaos)
+ if BuffPresent(metamorphosis) and BuffExpires(dark_soul_knowledge) and DemonicFury() <=650 and target.DeadIn() >30 if Stance(1) cancel.Texture(Spell_shadow_demonform)
+ if BuffPresent(metamorphosis) and BuffStacks(molten_core) and {BuffRemains(dark_soul_knowledge) <CastTime(shadow_bolt) or BuffRemains(dark_soul_knowledge) >CastTime(soul_fire) } Spell(soul_fire)
+ if BuffPresent(metamorphosis) Spell(touch_of_chaos)
+ if not target.DebuffPresent(corruption) and target.DeadIn() >=6 Spell(corruption)
+ if not InFlightToTarget(hand_of_guldan) and target.DebuffRemains(shadowflame) <1 +CastTime(shadow_bolt) Spell(hand_of_guldan)
+ if BuffStacks(molten_core) and {BuffRemains(dark_soul_knowledge) <CastTime(shadow_bolt) or BuffRemains(dark_soul_knowledge) >CastTime(soul_fire) } Spell(soul_fire)
+ if ManaPercent() <60 Spell(life_tap)
+ Spell(shadow_bolt)
+ Spell(life_tap)
+}
+AddIcon mastery=2 help=offgcd
+{
+ if not InCombat()
+ {
+ if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
+ }
+ Spell(melee)
+ Spell(felstorm)
+ Spell(wrathstorm)
+ if {BuffPresent(dark_soul_knowledge) and DemonicFury() /32 >BuffRemains(dark_soul_knowledge) } or target.DebuffRemains(corruption) <5 or not target.DebuffPresent(doom) or DemonicFury() >=950 or DemonicFury() /32 >target.DeadIn() unless Stance(1) Spell(metamorphosis)
+}
+AddIcon mastery=2 help=moving
+{
+ Spell(fel_flame)
+}
+AddIcon mastery=2 help=aoe
+{
+
+ if BuffPresent(metamorphosis) and target.DebuffRemains(corruption) >10 and DemonicFury() <=650 and BuffExpires(dark_soul_knowledge) and not target.DebuffPresent(immolation_aura) if Stance(1) cancel.Texture(Spell_shadow_demonform)
+ if BuffPresent(metamorphosis) Spell(immolation_aura)
+ if BuffPresent(metamorphosis) and target.DebuffRemains(corruption) <10 Spell(void_ray)
+ if BuffPresent(metamorphosis) and {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <TickTime(doom) or {target.TicksRemain(doom) +1 <Ticks(doom) and BuffPresent(dark_soul_knowledge) } } and target.DeadIn() >=30 Spell(doom)
+ if BuffPresent(metamorphosis) Spell(void_ray)
+ if not target.DebuffPresent(corruption) and target.DeadIn() >30 Spell(corruption)
+ Spell(hand_of_guldan)
+ if target.DebuffRemains(corruption) <10 or BuffPresent(dark_soul_knowledge) or DemonicFury() >=950 or DemonicFury() /32 >target.DeadIn() unless Stance(1) Spell(metamorphosis)
+ Spell(hellfire)
+ Spell(life_tap)
+
+}
+AddIcon mastery=2 help=cd
+{
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(blood_fury)
+ Spell(dark_soul_knowledge)
+ Spell(summon_doomguard)
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
+ if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+ }
+ if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
+ if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+ if BurningEmbers() if target.HealthPercent(less 20) Spell(shadowburn)
+ if {target.TicksRemain(immolate_debuff) <Ticks(immolate-debuff) /2 or target.DebuffExpires(immolate_debuff) } and target.DeadIn() >=5 Spell(immolate)
+ if Charges(conflagrate) ==2 Spell(conflagrate)
+ if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
+ if BurningEmbers() and {BuffStacks(backdraft) <3 or Level() <86 } and {{BurningEmbers() / 10} >3.5 or BuffRemains(dark_soul_instability) >CastTime(chaos_bolt) or BuffRemains(skull_banner) >CastTime(chaos_bolt) } Spell(chaos_bolt)
+ Spell(conflagrate)
+ Spell(incinerate)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if not InCombat()
+ {
+ if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
+ }
+}
+AddIcon mastery=3 help=aoe
+{
+
+ if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
+ if {BurningEmbers() / 10} >=3.5 and BurningEmbers() and target.HealthPercent() <=20 focus.Spell(havoc)
+ if {BurningEmbers() / 10} >=3.5 and BurningEmbers() and BuffStacks(havoc) >=1 if target.HealthPercent(less 20) Spell(shadowburn)
+ if BurningEmbers() and BuffExpires(fire_and_brimstone) Spell(fire_and_brimstone)
+ if BuffPresent(fire_and_brimstone) and not target.DebuffPresent(immolate_debuff) Spell(immolate)
+ if BuffPresent(fire_and_brimstone) Spell(conflagrate)
+ if BuffPresent(fire_and_brimstone) Spell(incinerate)
+ if not target.DebuffPresent(immolate_debuff) Spell(immolate)
+
+ if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
+ focus.Spell(havoc)
+}
+AddIcon mastery=3 help=cd
+{
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+ Spell(blood_fury)
+ Spell(dark_soul_instability)
+ Spell(summon_doomguard)
+}
+]]
+
+ OvaleScripts:RegisterScript("WARLOCK", name, desc, code)
+end
diff --git a/class/Warrior.lua b/class/Warrior.lua
new file mode 100644
index 0000000..7754a9f
--- /dev/null
+++ b/class/Warrior.lua
@@ -0,0 +1,284 @@
+local _, Ovale = ...
+local OvaleScripts = Ovale.OvaleScripts
+
+do
+ local name = "Ovale"
+ local desc = "[5.2] Ovale: Arms, Fury, Protection"
+ local code = [[
+Define(avatar 107574)
+ SpellInfo(avatar duration=24 cd=180 )
+ SpellAddBuff(avatar avatar=1)
+Define(battle_shout 6673)
+ SpellInfo(battle_shout duration=300 cd=60 )
+ SpellAddBuff(battle_shout battle_shout=1)
+Define(battle_stance 2457)
+ SpellInfo(battle_stance cd=3 )
+Define(berserker_rage 18499)
+ SpellInfo(berserker_rage duration=6 cd=30 )
+ SpellAddBuff(berserker_rage berserker_rage=1)
+Define(bladestorm 46924)
+ SpellInfo(bladestorm duration=6 cd=90 )
+ SpellAddBuff(bladestorm bladestorm=1)
+Define(bloodbath 113344)
+ SpellInfo(bloodbath duration=6 tick=1 )
+ SpellAddTargetDebuff(bloodbath bloodbath=1)
+Define(bloodsurge 46916)
+ SpellInfo(bloodsurge duration=10)
+Define(bloodthirst 23881)
+ SpellInfo(bloodthirst rage=-10 cd=4.5 )
+Define(cleave 845)
+ SpellInfo(cleave rage=30 cd=1.5 )
+Define(colossus_smash 86346)
+ SpellInfo(colossus_smash duration=6.5 cd=20 )
+ SpellAddTargetDebuff(colossus_smash colossus_smash=1)
+Define(defensive_stance 71)
+ SpellInfo(defensive_stance cd=3 )
+Define(demoralizing_shout 1160)
+ SpellInfo(demoralizing_shout duration=10 cd=60 )
+ SpellAddTargetDebuff(demoralizing_shout demoralizing_shout=1)
+Define(devastate 20243)
+Define(dragon_roar 118000)
+ SpellInfo(dragon_roar cd=60 )
+Define(enrage 5229)
+ SpellInfo(enrage duration=10 rage=-20 cd=60 )
+ SpellAddBuff(enrage enrage=1)
+Define(execute 5308)
+ SpellInfo(execute rage=30 )
+Define(heroic_leap 6544)
+ SpellInfo(heroic_leap duration=1 cd=45 )
+ AddCheckBox(heroic_leap_check SpellName(heroic_leap))
+Define(heroic_strike 78)
+ SpellInfo(heroic_strike rage=30 cd=1.5 )
+Define(heroic_throw 57755)
+ SpellInfo(heroic_throw cd=30 )
+Define(impending_victory 103840)
+ SpellInfo(impending_victory rage=10 cd=30 )
+Define(last_stand 12975)
+ SpellInfo(last_stand duration=20 cd=180 )
+ SpellAddBuff(last_stand last_stand=1)
+Define(meat_cleaver 85739)
+ SpellInfo(meat_cleaver duration=10 )
+ SpellAddBuff(meat_cleaver meat_cleaver=1)
+Define(mortal_strike 12294)
+ SpellInfo(mortal_strike duration=10 rage=-10 cd=6 )
+ SpellAddTargetDebuff(mortal_strike mortal_wounds=1)
+Define(overpower 7384)
+ SpellInfo(overpower rage=10 )
+ SpellAddBuff(overpower taste_for_blood=-1)
+Define(pummel 6552)
+ SpellInfo(pummel duration=4 cd=15 )
+Define(raging_blow 85288)
+ SpellInfo(raging_blow rage=10 )
+ SpellAddBuff(raging_blow raging_blow_aura=-1)
+Define(raging_blow_aura 131116)
+ SpellInfo(raging_blow_aura duration=12 )
+ SpellAddBuff(raging_blow_aura raging_blow_aura=1)
+Define(recklessness 1719)
+ SpellInfo(recklessness duration=12 cd=180 )
+ SpellAddBuff(recklessness recklessness=1)
+Define(revenge 6572)
+ SpellInfo(revenge rage=-15 cd=9 )
+Define(shield_barrier 112048)
+ SpellInfo(shield_barrier duration=6 rage=20 cd=1.5 )
+ SpellAddBuff(shield_barrier shield_barrier=1)
+Define(shield_block 2565)
+ SpellInfo(shield_block rage=60 cd=1.5 )
+ SpellAddTargetDebuff(shield_block shield_block_aura=1)
+Define(shield_block_aura 132404)
+ SpellInfo(shield_block_aura duration=6 )
+ SpellAddBuff(shield_block_aura shield_block_aura=1)
+Define(shield_slam 23922)
+ SpellInfo(shield_slam rage=-20 cd=6 )
+Define(shield_wall 871)
+ SpellInfo(shield_wall duration=12 cd=300 )
+ SpellAddBuff(shield_wall shield_wall=1)
+Define(shockwave 46968)
+ SpellInfo(shockwave cd=40 )
+ SpellAddBuff(shockwave shockwave=1)
+Define(skull_banner 114207)
+ SpellInfo(skull_banner duration=10 cd=180 )
+Define(slam 1464)
+ SpellInfo(slam rage=20 )
+Define(storm_bolt 107570)
+ SpellInfo(storm_bolt cd=30 )
+ SpellAddBuff(storm_bolt storm_bolt=1)
+Define(sudden_execute 139958)
+ SpellInfo(sudden_execute duration=10 )
+ SpellAddBuff(sudden_execute sudden_execute=1)
+Define(sunder_armor 7386)
+ SpellInfo(sunder_armor rage=15 )
+ SpellAddTargetDebuff(sunder_armor weakened_armor=1)
+ AddCheckBox(sunder_armor_check SpellName(sunder_armor))
+Define(sweeping_strikes 12328)
+ SpellInfo(sweeping_strikes duration=10 rage=30 cd=10 )
+ SpellAddBuff(sweeping_strikes sweeping_strikes=1)
+Define(taste_for_blood 56636)
+Define(thunder_clap 6343)
+ SpellInfo(thunder_clap rage=20 cd=6 )
+ SpellAddTargetDebuff(thunder_clap weakened_blows=1)
+Define(ultimatum 122510)
+ SpellInfo(ultimatum duration=10 )
+ SpellAddBuff(ultimatum ultimatum=1)
+Define(weakened_armor 113746)
+ SpellInfo(weakened_armor duration=30 )
+ SpellAddBuff(weakened_armor weakened_armor=1)
+Define(weakened_blows 115798)
+ SpellInfo(weakened_blows duration=30 )
+ SpellAddBuff(weakened_blows weakened_blows=1)
+Define(whirlwind 1680)
+ SpellInfo(whirlwind rage=30 )
+Define(wild_strike 100130)
+ SpellInfo(wild_strike rage=30 )
+ SpellAddBuff(wild_strike bloodsurge=-1)
+ SpellAddTargetDebuff(wild_strike wild_strike=1)
+Define(avatar_talent 16)
+Define(bloodbath_talent 17)
+Define(dragon_roar_talent 12)
+Define(impending_victory_talent 6)
+Define(shockwave_talent 11)
+Define(storm_bolt_talent 18)
+AddCheckBox(showwait L(showwait) default)
+AddIcon mastery=1 help=main
+{
+ if not InCombat()
+ {
+ unless Stance(1) Spell(battle_stance)
+ }
+ if target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 if CheckBoxOn(sunder_armor_check) Spell(sunder_armor)
+ Spell(mortal_strike)
+ if TalentPoints(dragon_roar_talent) and TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) and target.DebuffExpires(colossus_smash) and target.HealthPercent() >=20 Spell(dragon_roar)
+ if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash) Spell(storm_bolt)
+ if target.DebuffRemains(colossus_smash) <1 Spell(colossus_smash)
+ if target.DebuffPresent(colossus_smash) or BuffPresent(recklessness) or Rage() >=Rage() -25 if target.HealthPercent(less 20) Spell(execute)
+ if TalentPoints(dragon_roar_talent) and {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) and target.HealthPercent() >=20 } or {target.DebuffExpires(colossus_smash) and target.HealthPercent() <20 } Spell(dragon_roar)
+ if target.DebuffPresent(colossus_smash) and {target.DebuffRemains(colossus_smash) <1 or BuffPresent(recklessness) } and target.HealthPercent() >=20 Spell(slam)
+ if BuffStacks(taste_for_blood) >=3 and target.HealthPercent() >=20 Spell(overpower usable=1)
+ if target.DebuffPresent(colossus_smash) and target.DebuffRemains(colossus_smash) <2.5 and target.HealthPercent() >=20 Spell(slam)
+ if BuffExpires(sudden_execute) if target.HealthPercent(less 20) Spell(execute)
+ if target.HealthPercent() >=20 or BuffPresent(sudden_execute) Spell(overpower usable=1)
+ if Rage() >=40 and target.HealthPercent() >=20 Spell(slam)
+ Spell(battle_shout)
+ Spell(heroic_throw)
+}
+AddIcon mastery=1 help=offgcd
+{
+ if target.IsInterruptible() Spell(pummel)
+ if TalentPoints(bloodbath_talent) and {target.DeadIn() <=18 or BuffPresent(recklessness) or target.DeadIn() >=75 } Spell(bloodbath)
+ if BuffExpires(enrage) and Rage() <=Rage() -10 Spell(berserker_rage)
+ if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
+ if {target.DebuffPresent(colossus_smash) and Rage() >=Rage() -40 and target.HealthPercent() >=20 } or Rage() >=Rage() -15 Spell(heroic_strike)
+}
+AddIcon mastery=1 help=aoe
+{
+
+ Spell(dragon_roar)
+ Spell(shockwave)
+ Spell(whirlwind)
+ Spell(sweeping_strikes)
+ if Rage() >=90 Spell(cleave)
+ Spell(bloodthirst)
+
+}
+AddIcon mastery=1 help=cd
+{
+ if target.DeadIn() <=18 or {{target.DeadIn() >=186 or {target.HealthPercent() <20 and {target.DebuffRemains(colossus_smash) >=5 or SpellCooldown(colossus_smash) <=1.5 } } } and {not TalentPoints(bloodbath_talent) or not SpellCooldown(bloodbath) } } Spell(recklessness)
+ if TalentPoints(avatar_talent) and {BuffPresent(recklessness) or target.DeadIn() <=25 } Spell(avatar)
+ if BuffPresent(recklessness) Spell(skull_banner)
+ if TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+}
+AddIcon mastery=2 help=main
+{
+ if not InCombat()
+ {
+ unless Stance(1) Spell(battle_stance)
+ }
+ if target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 if CheckBoxOn(sunder_armor_check) Spell(sunder_armor)
+ if BuffStacks(raging_blow_aura) ==2 and target.DebuffPresent(colossus_smash) and target.HealthPercent() >=20 Spell(raging_blow)
+ if not {target.HealthPercent() <20 and target.DebuffPresent(colossus_smash) and Rage() >=30 } Spell(bloodthirst)
+ if BuffStacks(bloodsurge) and target.HealthPercent() >=20 and SpellCooldown(bloodthirst) <=1 Spell(wild_strike)
+ if not {target.HealthPercent() <20 and target.DebuffPresent(colossus_smash) and Rage() >=30 } and SpellCooldown(bloodthirst) <=1 and SpellCooldown(bloodthirst) if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+ if TalentPoints(dragon_roar_talent) and {not target.DebuffPresent(colossus_smash) and {BuffPresent(bloodbath) or not TalentPoints(bloodbath_talent) } } Spell(dragon_roar)
+ Spell(colossus_smash)
+ if BuffPresent(enrage) or target.DebuffPresent(colossus_smash) or Rage() >90 or target.DeadIn() <12 or BuffPresent(recklessness) if target.HealthPercent(less 20) Spell(execute)
+ if TalentPoints(storm_bolt_talent) Spell(storm_bolt)
+ if BuffStacks(raging_blow_aura) ==2 or {BuffPresent(raging_blow_aura) and {target.DebuffPresent(colossus_smash) or SpellCooldown(colossus_smash) >=3 or {SpellCooldown(bloodthirst) >=1 and BuffRemains(raging_blow_aura) <=3 } } } Spell(raging_blow)
+ if BuffStacks(bloodsurge) Spell(wild_strike)
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ if target.DebuffExpires(colossus_smash) Spell(heroic_throw)
+ if Rage() <70 and not target.DebuffPresent(colossus_smash) Spell(battle_shout)
+ if target.DebuffPresent(colossus_smash) and target.HealthPercent() >=20 Spell(wild_strike)
+ if TalentPoints(impending_victory_talent) and target.HealthPercent() >=20 Spell(impending_victory)
+ if SpellCooldown(colossus_smash) >=2 and Rage() >=80 and target.HealthPercent() >=20 Spell(wild_strike)
+ if Rage() <70 Spell(battle_shout)
+}
+AddIcon mastery=2 help=offgcd
+{
+ if target.IsInterruptible() Spell(pummel)
+ if TalentPoints(bloodbath_talent) and {SpellCooldown(colossus_smash) <2 or target.DebuffRemains(colossus_smash) >=5 or target.DeadIn() <=20 } Spell(bloodbath)
+ if not {BuffStacks(enrage) or {BuffStacks(raging_blow_aura) ==2 and target.HealthPercent() >=20 } } or {BuffRemains(recklessness) >=10 and not BuffStacks(raging_blow_aura) } Spell(berserker_rage)
+ if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
+ if {{target.DebuffPresent(colossus_smash) and Rage() >=40 } and target.HealthPercent() >=20 } or Rage() >=110 Spell(heroic_strike)
+}
+AddIcon mastery=2 help=aoe
+{
+
+ Spell(dragon_roar)
+ Spell(shockwave)
+ if BuffStacks(meat_cleaver) and BuffStacks(raging_blow_aura) Spell(raging_blow)
+ Spell(whirlwind)
+ if Rage() >=90 Spell(cleave)
+ Spell(bloodthirst)
+
+}
+AddIcon mastery=2 help=cd
+{
+ if {TalentPoints(avatar_talent) and {SpellCooldown(colossus_smash) <2 or target.DebuffRemains(colossus_smash) >=5 } } or {TalentPoints(bloodbath_talent) and {BuffPresent(bloodbath) and {target.DeadIn() >192 or target.HealthPercent() <20 } } } or target.DeadIn() <=12 Spell(recklessness)
+ if BuffPresent(recklessness) and TalentPoints(avatar_talent) Spell(avatar)
+ if BuffPresent(recklessness) Spell(skull_banner)
+ if {not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash) } or {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) } { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+}
+AddIcon mastery=3 help=main
+{
+ if not InCombat()
+ {
+ unless Stance(2) Spell(defensive_stance)
+ }
+ if Rage() <80 Spell(shield_slam)
+ if Rage() <85 Spell(revenge)
+ if Rage() <90 Spell(battle_shout)
+ if target.DebuffExpires(weakened_blows) Spell(thunder_clap)
+ if target.HealthPercent(less 20) Spell(execute)
+ Spell(devastate)
+}
+AddIcon mastery=3 help=offgcd
+{
+ if target.IsInterruptible() Spell(pummel)
+ if {BuffPresent(ultimatum) and target.HealthPercent() >=20 } Spell(heroic_strike)
+ if Rage() <90 Spell(berserker_rage)
+ if BuffExpires(shield_block_aura) Spell(shield_block)
+ if BuffExpires(shield_barrier) and Rage() >80 Spell(shield_barrier)
+ Spell(demoralizing_shout)
+}
+AddIcon mastery=3 help=aoe
+{
+
+ Spell(dragon_roar)
+ Spell(shockwave)
+ Spell(thunder_clap)
+ if BuffPresent(ultimatum) Spell(cleave)
+ if Rage() >=90 Spell(cleave)
+ Spell(shield_slam)
+
+}
+AddIcon mastery=3 help=cd
+{
+ if Health() <130000 Spell(last_stand)
+ if TalentPoints(avatar_talent) Spell(avatar)
+ Spell(recklessness)
+ if BuffExpires(shield_block_aura) Spell(shield_wall)
+ { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+}
+]]
+
+ OvaleScripts:RegisterScript("WARRIOR", name, desc, code)
+end
diff --git a/class/files.xml b/class/files.xml
new file mode 100644
index 0000000..04fc5c6
--- /dev/null
+++ b/class/files.xml
@@ -0,0 +1,13 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
+ <Script file="DeathKnight.lua" />
+ <Script file="Druid.lua" />
+ <Script file="Hunter.lua" />
+ <Script file="Mage.lua" />
+ <Script file="Monk.lua" />
+ <Script file="Paladin.lua" />
+ <Script file="Priest.lua" />
+ <Script file="Rogue.lua" />
+ <Script file="Shaman.lua" />
+ <Script file="Warlock.lua" />
+ <Script file="Warrior.lua" />
+</Ui>
diff --git a/compiler.pl b/compiler.pl
index 4c6e6a6..39059c5 100644
--- a/compiler.pl
+++ b/compiler.pl
@@ -329,7 +329,7 @@ sub ParseDirectory
}
}
-my @directories = (".", "conditions", "scripts");
+my @directories = (".", "class", "conditions", "scripts");
while ($dir = shift @directories)
{
opendir(my $dh, $dir);
diff --git a/conditions/conditions.xml b/conditions/conditions.xml
deleted file mode 100644
index 5e0d8bb..0000000
--- a/conditions/conditions.xml
+++ /dev/null
@@ -1,107 +0,0 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
- <Script file="AfterWhiteHit.lua" />
- <Script file="ArmorSetParts.lua" />
- <Script file="BuffAmount.lua" />
- <Script file="BuffComboPoints.lua" />
- <Script file="BuffCount.lua" />
- <Script file="BuffDamageMultiplier.lua" />
- <Script file="BuffDuration.lua" />
- <Script file="BuffExpires.lua" />
- <Script file="BuffGain.lua" />
- <Script file="BuffRemains.lua" />
- <Script file="BuffSnapshot.lua" />
- <Script file="BuffStacks.lua" />
- <Script file="BuffStealable.lua" />
- <Script file="CanCast.lua" />
- <Script file="CastTime.lua" />
- <Script file="Casting.lua" />
- <Script file="CheckBox.lua" />
- <Script file="Class.lua" />
- <Script file="Classification.lua" />
- <Script file="ComboPoints.lua" />
- <Script file="Counter.lua" />
- <Script file="CreatureFamily.lua" />
- <Script file="CreatureType.lua" />
- <Script file="Damage.lua" />
- <Script file="DamageMultiplier.lua" />
- <Script file="DamageTaken.lua" />
- <Script file="Distance.lua" />
- <Script file="Eclipse.lua" />
- <Script file="EclipseDir.lua" />
- <Script file="Enemies.lua" />
- <Script file="EnergyRegen.lua" />
- <Script file="Exists.lua" />
- <Script file="False.lua" />
- <Script file="FocusRegen.lua" />
- <Script file="GCD.lua" />
- <Script file="Glyph.lua" />
- <Script file="HasEquippedItem.lua" />
- <Script file="HasFullControl.lua" />
- <Script file="HasShield.lua" />
- <Script file="HasTrinket.lua" />
- <Script file="HasWeapon.lua" />
- <Script file="Health.lua" />
- <Script file="InCombat.lua" />
- <Script file="InFlightToTarget.lua" />
- <Script file="InRange.lua" />
- <Script file="IsAggroed.lua" />
- <Script file="IsEnraged.lua" />
- <Script file="IsFeared.lua" />
- <Script file="IsFriend.lua" />
- <Script file="IsIncapacitated.lua" />
- <Script file="IsInterruptible.lua" />
- <Script file="IsPVP.lua" />
- <Script file="IsRooted.lua" />
- <Script file="IsStunned.lua" />
- <Script file="ItemCharges.lua" />
- <Script file="ItemCooldown.lua" />
- <Script file="ItemCount.lua" />
- <Script file="LastComboPoints.lua" />
- <Script file="LastDamage.lua" />
- <Script file="LastDamageMultiplier.lua" />
- <Script file="LastEstimatedDamage.lua" />
- <Script file="LastSnapshot.lua" />
- <Script file="Latency.lua" />
- <Script file="Level.lua" />
- <Script file="List.lua" />
- <Script file="NextTick.lua" />
- <Script file="PTR.lua" />
- <Script file="PetPresent.lua" />
- <Script file="Power.lua" />
- <Script file="PowerCost.lua" />
- <Script file="Present.lua" />
- <Script file="PreviousSpell.lua" />
- <Script file="RelativeLevel.lua" />
- <Script file="RemainingCastTime.lua" />
- <Script file="RuneCount.lua" />
- <Script file="Runes.lua" />
- <Script file="Snapshot.lua" />
- <Script file="Speed.lua" />
- <Script file="SpellChargeCooldown.lua" />
- <Script file="SpellCharges.lua" />
- <Script file="SpellCooldown.lua" />
- <Script file="SpellData.lua" />
- <Script file="SpellKnown.lua" />
- <Script file="SpellUsable.lua" />
- <Script file="StaggerRemains.lua" />
- <Script file="Stance.lua" />
- <Script file="Stealthed.lua" />
- <Script file="Swing.lua" />
- <Script file="TalentPoints.lua" />
- <Script file="TargetIsPlayer.lua" />
- <Script file="Threat.lua" />
- <Script file="TickTime.lua" />
- <Script file="Ticks.lua" />
- <Script file="TicksAdded.lua" />
- <Script file="TicksRemain.lua" />
- <Script file="TimeInCombat.lua" />
- <Script file="TimeToBloodlust.lua" />
- <Script file="TimeToMaxPower.lua" />
- <Script file="TimeToPowerFor.lua" />
- <Script file="TimeWithHaste.lua" />
- <Script file="TotemExpires.lua" />
- <Script file="Tracking.lua" />
- <Script file="True.lua" />
- <Script file="WeaponDamage.lua" />
- <Script file="WeaponEnchantExpires.lua" />
-</Ui>
diff --git a/conditions/files.xml b/conditions/files.xml
new file mode 100644
index 0000000..5e0d8bb
--- /dev/null
+++ b/conditions/files.xml
@@ -0,0 +1,107 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
+ <Script file="AfterWhiteHit.lua" />
+ <Script file="ArmorSetParts.lua" />
+ <Script file="BuffAmount.lua" />
+ <Script file="BuffComboPoints.lua" />
+ <Script file="BuffCount.lua" />
+ <Script file="BuffDamageMultiplier.lua" />
+ <Script file="BuffDuration.lua" />
+ <Script file="BuffExpires.lua" />
+ <Script file="BuffGain.lua" />
+ <Script file="BuffRemains.lua" />
+ <Script file="BuffSnapshot.lua" />
+ <Script file="BuffStacks.lua" />
+ <Script file="BuffStealable.lua" />
+ <Script file="CanCast.lua" />
+ <Script file="CastTime.lua" />
+ <Script file="Casting.lua" />
+ <Script file="CheckBox.lua" />
+ <Script file="Class.lua" />
+ <Script file="Classification.lua" />
+ <Script file="ComboPoints.lua" />
+ <Script file="Counter.lua" />
+ <Script file="CreatureFamily.lua" />
+ <Script file="CreatureType.lua" />
+ <Script file="Damage.lua" />
+ <Script file="DamageMultiplier.lua" />
+ <Script file="DamageTaken.lua" />
+ <Script file="Distance.lua" />
+ <Script file="Eclipse.lua" />
+ <Script file="EclipseDir.lua" />
+ <Script file="Enemies.lua" />
+ <Script file="EnergyRegen.lua" />
+ <Script file="Exists.lua" />
+ <Script file="False.lua" />
+ <Script file="FocusRegen.lua" />
+ <Script file="GCD.lua" />
+ <Script file="Glyph.lua" />
+ <Script file="HasEquippedItem.lua" />
+ <Script file="HasFullControl.lua" />
+ <Script file="HasShield.lua" />
+ <Script file="HasTrinket.lua" />
+ <Script file="HasWeapon.lua" />
+ <Script file="Health.lua" />
+ <Script file="InCombat.lua" />
+ <Script file="InFlightToTarget.lua" />
+ <Script file="InRange.lua" />
+ <Script file="IsAggroed.lua" />
+ <Script file="IsEnraged.lua" />
+ <Script file="IsFeared.lua" />
+ <Script file="IsFriend.lua" />
+ <Script file="IsIncapacitated.lua" />
+ <Script file="IsInterruptible.lua" />
+ <Script file="IsPVP.lua" />
+ <Script file="IsRooted.lua" />
+ <Script file="IsStunned.lua" />
+ <Script file="ItemCharges.lua" />
+ <Script file="ItemCooldown.lua" />
+ <Script file="ItemCount.lua" />
+ <Script file="LastComboPoints.lua" />
+ <Script file="LastDamage.lua" />
+ <Script file="LastDamageMultiplier.lua" />
+ <Script file="LastEstimatedDamage.lua" />
+ <Script file="LastSnapshot.lua" />
+ <Script file="Latency.lua" />
+ <Script file="Level.lua" />
+ <Script file="List.lua" />
+ <Script file="NextTick.lua" />
+ <Script file="PTR.lua" />
+ <Script file="PetPresent.lua" />
+ <Script file="Power.lua" />
+ <Script file="PowerCost.lua" />
+ <Script file="Present.lua" />
+ <Script file="PreviousSpell.lua" />
+ <Script file="RelativeLevel.lua" />
+ <Script file="RemainingCastTime.lua" />
+ <Script file="RuneCount.lua" />
+ <Script file="Runes.lua" />
+ <Script file="Snapshot.lua" />
+ <Script file="Speed.lua" />
+ <Script file="SpellChargeCooldown.lua" />
+ <Script file="SpellCharges.lua" />
+ <Script file="SpellCooldown.lua" />
+ <Script file="SpellData.lua" />
+ <Script file="SpellKnown.lua" />
+ <Script file="SpellUsable.lua" />
+ <Script file="StaggerRemains.lua" />
+ <Script file="Stance.lua" />
+ <Script file="Stealthed.lua" />
+ <Script file="Swing.lua" />
+ <Script file="TalentPoints.lua" />
+ <Script file="TargetIsPlayer.lua" />
+ <Script file="Threat.lua" />
+ <Script file="TickTime.lua" />
+ <Script file="Ticks.lua" />
+ <Script file="TicksAdded.lua" />
+ <Script file="TicksRemain.lua" />
+ <Script file="TimeInCombat.lua" />
+ <Script file="TimeToBloodlust.lua" />
+ <Script file="TimeToMaxPower.lua" />
+ <Script file="TimeToPowerFor.lua" />
+ <Script file="TimeWithHaste.lua" />
+ <Script file="TotemExpires.lua" />
+ <Script file="Tracking.lua" />
+ <Script file="True.lua" />
+ <Script file="WeaponDamage.lua" />
+ <Script file="WeaponEnchantExpires.lua" />
+</Ui>
diff --git a/locales/files.xml b/locales/files.xml
new file mode 100644
index 0000000..8e84785
--- /dev/null
+++ b/locales/files.xml
@@ -0,0 +1,15 @@
+<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
+ <!-- Default locale -->
+ <Script file="Locale-frFR.lua" />
+
+ <!-- Translations -->
+ <Script file="Locale-deDE.lua" />
+ <Script file="Locale-enUS.lua" />
+ <Script file="Locale-esES.lua" />
+ <Script file="Locale-itIT.lua" />
+ <Script file="Locale-koKR.lua" />
+ <Script file="Locale-ptBR.lua" />
+ <Script file="Locale-ruRU.lua" />
+ <Script file="Locale-zhCN.lua" />
+ <Script file="Locale-zhTW.lua" />
+</Ui>
diff --git a/locales/locales.xml b/locales/locales.xml
deleted file mode 100644
index 8e84785..0000000
--- a/locales/locales.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
- <!-- Default locale -->
- <Script file="Locale-frFR.lua" />
-
- <!-- Translations -->
- <Script file="Locale-deDE.lua" />
- <Script file="Locale-enUS.lua" />
- <Script file="Locale-esES.lua" />
- <Script file="Locale-itIT.lua" />
- <Script file="Locale-koKR.lua" />
- <Script file="Locale-ptBR.lua" />
- <Script file="Locale-ruRU.lua" />
- <Script file="Locale-zhCN.lua" />
- <Script file="Locale-zhTW.lua" />
-</Ui>
diff --git a/scripts/OvaleDeathKnight.lua b/scripts/OvaleDeathKnight.lua
deleted file mode 100644
index 725720b..0000000
--- a/scripts/OvaleDeathKnight.lua
+++ /dev/null
@@ -1,196 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Frost, Unholy"
- local code = [[
-Define(army_of_the_dead 42650)
- SpellInfo(army_of_the_dead duration=4 frost=1 blood=1 unholy=1 runicpower=-300 cd=600 )
- SpellAddBuff(army_of_the_dead army_of_the_dead=1)
-Define(blood_charge 114851)
- SpellInfo(blood_charge duration=25 )
- SpellAddBuff(blood_charge blood_charge=1)
-Define(blood_fury 20572)
- SpellInfo(blood_fury duration=15 cd=120 )
- SpellAddBuff(blood_fury blood_fury=1)
-Define(blood_plague 55078)
- SpellInfo(blood_plague duration=30 tick=3 )
- SpellAddTargetDebuff(blood_plague blood_plague=1)
-Define(blood_tap 45529)
-Define(dark_transformation 63560)
- SpellInfo(dark_transformation duration=30 unholy=1 runicpower=-100 )
- SpellAddBuff(dark_transformation dark_transformation=1)
-Define(death_and_decay 43265)
- SpellInfo(death_and_decay duration=10 unholy=1 runicpower=-100 cd=30 )
- SpellAddBuff(death_and_decay death_and_decay=1)
-Define(death_coil 47541)
- SpellInfo(death_coil runicpower=400 )
-Define(empower_rune_weapon 47568)
- SpellInfo(empower_rune_weapon runicpower=-250 cd=300 )
-Define(festering_strike 85948)
- SpellInfo(festering_strike frost=1 blood=1 runicpower=-200 )
-Define(frost_fever 55095)
- SpellInfo(frost_fever duration=30 tick=3 )
- SpellAddTargetDebuff(frost_fever frost_fever=1)
-Define(frost_presence 48266)
- SpellAddBuff(frost_presence frost_presence=1)
-Define(frost_strike 49143)
- SpellInfo(frost_strike runicpower=350 )
-Define(golems_strength 79634)
- SpellInfo(golems_strength duration=25 cd=1 )
- SpellAddBuff(golems_strength golems_strength=1)
-Define(horn_of_winter 57330)
- SpellInfo(horn_of_winter duration=300 runicpower=-100 cd=20 )
- SpellAddBuff(horn_of_winter horn_of_winter=1)
-Define(howling_blast 49184)
- SpellInfo(howling_blast frost=1 runicpower=-100 )
-Define(killing_machine 51128)
-Define(mogu_power_potion_aura 105706)
- SpellInfo(mogu_power_potion_aura duration=25 cd=1 )
- SpellAddBuff(mogu_power_potion_aura mogu_power_potion_aura=1)
-Define(obliterate 49020)
- SpellInfo(obliterate frost=1 unholy=1 runicpower=-200 )
-Define(outbreak 77575)
- SpellInfo(outbreak runicpower=0 cd=60 )
-Define(pillar_of_frost 51271)
- SpellInfo(pillar_of_frost duration=20 frost=1 runicpower=-100 cd=60 )
- SpellAddBuff(pillar_of_frost pillar_of_frost=1)
-Define(plague_leech 123693)
- SpellInfo(plague_leech cd=25 )
-Define(plague_strike 45462)
- SpellInfo(plague_strike unholy=1 runicpower=-100 )
-Define(raise_dead 46584)
- SpellInfo(raise_dead cd=120 )
- SpellAddBuff(raise_dead raise_dead=1)
-Define(rime 59057)
-Define(runic_corruption 51460)
- SpellInfo(runic_corruption duration=3 )
- SpellAddBuff(runic_corruption runic_corruption=1)
-Define(scourge_strike 55090)
- SpellInfo(scourge_strike unholy=1 runicpower=-100 )
-Define(shadow_infusion 49572)
-Define(soul_reaper 114866)
- SpellInfo(soul_reaper duration=5 blood=1 runicpower=-100 cd=6 )
- SpellAddBuff(soul_reaper soul_reaper=1)
-Define(sudden_doom 49530)
-Define(summon_gargoyle 49206)
- SpellInfo(summon_gargoyle duration=40 cd=180 )
- SpellAddBuff(summon_gargoyle summon_gargoyle=1)
-Define(unholy_blight 115989)
- SpellInfo(unholy_blight duration=10 cd=90 )
- SpellAddBuff(unholy_blight unholy_blight=1)
-Define(unholy_frenzy 49016)
- SpellInfo(unholy_frenzy duration=30 cd=180 )
- SpellAddBuff(unholy_frenzy unholy_frenzy=1)
-Define(unholy_presence 48265)
- SpellAddBuff(unholy_presence unholy_presence=1)
-Define(blood_tap_talent 13)
-Define(plague_leech_talent 2)
-Define(runic_corruption_talent 15)
-Define(runic_empowerment_talent 14)
-Define(unholy_blight_talent 3)
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- unless Stance(2) Spell(frost_presence)
- Spell(horn_of_winter)
- }
- if BuffStacks(killing_machine) or RunicPower() >88 Spell(frost_strike)
- if TalentPoints(plague_leech_talent) and {target.DebuffRemains(blood_plague) <3 or target.DebuffRemains(frost_fever) <3 or SpellCooldown(outbreak) <1 } Spell(plague_leech)
- if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
- if target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 Spell(soul_reaper)
- if not target.DebuffPresent(frost_fever) Spell(howling_blast)
- if not target.DebuffPresent(blood_plague) Spell(plague_strike)
- if BuffStacks(rime) Spell(howling_blast)
- if RunicPower() >76 Spell(frost_strike)
- if RuneCount(unholy) >1 Spell(obliterate)
- if RuneCount(death) >1 or RuneCount(frost) >1 Spell(howling_blast)
- Spell(horn_of_winter)
- if RuneCount(unholy) >0 Spell(obliterate)
- Spell(howling_blast)
- if TalentPoints(runic_empowerment_talent) and {RuneCount(frost) ==0 or RuneCount(blood) ==0 } Spell(frost_strike)
- if TalentPoints(runic_corruption_talent) and BuffExpires(runic_corruption) Spell(frost_strike)
- Spell(death_and_decay)
- if RunicPower() >=40 Spell(frost_strike)
-}
-AddIcon mastery=2 help=offgcd
-{
- if not InCombat()
- {
- Spell(pillar_of_frost)
- }
- Spell(pillar_of_frost)
- if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >10 and {RunicPower() >76 or {RunicPower() >=20 and BuffStacks(killing_machine) } } Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 and SpellCooldown(soul_reaper) ==0 } Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } >35 or BuffStacks(blood_charge) >=8 } Spell(blood_tap)
-}
-AddIcon mastery=2 help=cd
-{
- if not InCombat()
- {
- Spell(army_of_the_dead)
- Spell(blood_fury)
- Spell(raise_dead)
- }
- if target.DeadIn() <=60 and {BuffPresent(mogu_power_potion_aura) or BuffPresent(golems_strength) } Spell(empower_rune_weapon)
- if BuffPresent(pillar_of_frost) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(blood_fury)
- Spell(raise_dead)
- if TalentPoints(unholy_blight_talent) and {target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 } Spell(unholy_blight)
- Spell(empower_rune_weapon)
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- unless Stance(3) Spell(unholy_presence)
- Spell(horn_of_winter)
- }
- if AttackPower() >{LastSpellAttackPower(blood_plague) +5000 } and TimeInCombat() >15 and not {SpellCooldown(unholy_blight) >49 } Spell(outbreak)
- if AttackPower() >{LastSpellAttackPower(blood_plague) +5000 } and TimeInCombat() >15 and not {SpellCooldown(unholy_blight) >49 } Spell(plague_strike)
- if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
- if target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 Spell(soul_reaper)
- if not target.DebuffPresent(blood_plague) or not target.DebuffPresent(frost_fever) Spell(plague_strike)
- Spell(dark_transformation)
- if RunicPower() >90 Spell(death_coil)
- if RuneCount(unholy) ==2 Spell(death_and_decay)
- if RuneCount(unholy) ==2 Spell(scourge_strike)
- if RuneCount(blood) ==2 and RuneCount(frost) ==2 Spell(festering_strike)
- Spell(death_and_decay)
- if BuffStacks(sudden_doom) or {BuffExpires(dark_transformation) and RuneCount(unholy) <=1 } Spell(death_coil)
- Spell(scourge_strike)
- if TalentPoints(plague_leech_talent) and SpellCooldown(outbreak) <1 Spell(plague_leech)
- Spell(festering_strike)
- Spell(horn_of_winter)
- if BuffExpires(dark_transformation) or {SpellCooldown(summon_gargoyle) >8 and BuffRemains(dark_transformation) >8 } Spell(death_coil)
-}
-AddIcon mastery=3 help=offgcd
-{
- if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >10 and RunicPower() >=32 Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and {target.HealthPercent() -{3 *target.HealthPercent() /target.DeadIn() } <=35 and SpellCooldown(soul_reaper) ==0 } Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and BuffStacks(shadow_infusion) ==5 Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and RuneCount(unholy) ==2 and SpellCooldown(death_and_decay) ==0 Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and SpellCooldown(death_and_decay) ==0 Spell(blood_tap)
- if TalentPoints(blood_tap_talent) and BuffStacks(blood_charge) >=8 Spell(blood_tap)
-}
-AddIcon mastery=3 help=cd
-{
- if not InCombat()
- {
- Spell(army_of_the_dead)
- Spell(blood_fury)
- Spell(raise_dead)
- }
- if TimeInCombat() >=2 Spell(blood_fury)
- if TimeInCombat() >=4 Spell(unholy_frenzy)
- if TimeInCombat() >=4 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if TalentPoints(unholy_blight_talent) and {target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 } Spell(unholy_blight)
- Spell(summon_gargoyle)
- Spell(empower_rune_weapon)
-}
-]]
-
- OvaleScripts:RegisterScript("DEATHKNIGHT", name, desc, code)
-end
diff --git a/scripts/OvaleDruid.lua b/scripts/OvaleDruid.lua
deleted file mode 100644
index 93b9cc5..0000000
--- a/scripts/OvaleDruid.lua
+++ /dev/null
@@ -1,282 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Balance, Feral"
- local code = [[
-Define(berserk 50334)
- SpellInfo(berserk duration=10 cd=180 )
- SpellAddBuff(berserk berserk=1)
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(cat_form 768)
- SpellAddBuff(cat_form cat_form=1)
-Define(celestial_alignment 112071)
- SpellInfo(celestial_alignment duration=15 cd=180 )
- SpellAddBuff(celestial_alignment celestial_alignment=1)
-Define(chosen_of_elune 122114)
-Define(dream_of_cenarius_damage 108381)
- SpellInfo(dream_of_cenarius_damage duration=30 )
- SpellAddBuff(dream_of_cenarius_damage dream_of_cenarius_damage=1)
-Define(faerie_fire 770)
- SpellInfo(faerie_fire duration=300 )
- SpellAddBuff(faerie_fire faerie_fire=1)
- AddCheckBox(faerie_fire_check SpellName(faerie_fire))
-Define(ferocious_bite 22568)
- SpellInfo(ferocious_bite combo=0 energy=25 )
-Define(healing_touch 5185)
-Define(hurricane 16914)
- SpellInfo(hurricane duration=10 )
- SpellAddBuff(hurricane hurricane=1)
-Define(incarnation 106731)
- SpellInfo(incarnation duration=30 cd=180 )
-Define(lunar_eclipse 48518)
- SpellAddBuff(lunar_eclipse lunar_eclipse=1)
-Define(mangle 33876)
- SpellInfo(mangle energy=35 )
-Define(mark_of_the_wild 1126)
- SpellInfo(mark_of_the_wild duration=3600 )
- SpellAddBuff(mark_of_the_wild mark_of_the_wild=1)
-Define(moonfire 8921)
- SpellInfo(moonfire duration=14 tick=2 haste=spell )
- SpellAddTargetDebuff(moonfire moonfire=1)
-Define(moonkin_form 24858)
- SpellAddBuff(moonkin_form moonkin_form=1)
-Define(natures_grace 16886)
- SpellInfo(natures_grace duration=15 )
- SpellAddBuff(natures_grace natures_grace=1)
-Define(natures_swiftness 132158)
- SpellInfo(natures_swiftness cd=60 )
- SpellAddBuff(natures_swiftness natures_swiftness=1)
-Define(natures_vigil 124974)
- SpellInfo(natures_vigil duration=30 cd=90 )
- SpellAddBuff(natures_vigil natures_vigil=1)
-Define(omen_of_clarity 16864)
- SpellAddBuff(omen_of_clarity omen_of_clarity=1)
-Define(predatory_swiftness 16974)
-Define(rake 1822)
- SpellInfo(rake duration=15 energy=35 tick=3 combo=1 )
- SpellAddTargetDebuff(rake rake=1)
-Define(rip 1079)
- SpellInfo(rip duration=16 combo=0 energy=30 tick=2 )
- SpellAddTargetDebuff(rip rip=1)
-Define(savage_roar 52610)
- SpellInfo(savage_roar duration=12 combo=0 energy=25 )
- SpellAddBuff(savage_roar savage_roar=1)
-Define(shooting_stars 93399)
-Define(shred 5221)
- SpellInfo(shred energy=40 combo=1 )
-Define(skull_bash_cat 80965)
- SpellInfo(skull_bash_cat cd=15 )
-Define(solar_eclipse 48517)
- SpellAddBuff(solar_eclipse solar_eclipse=1)
-Define(starfall 48505)
- SpellInfo(starfall duration=10 cd=90 )
- SpellAddBuff(starfall starfall=1)
-Define(starfire 2912)
-Define(starsurge 78674)
- SpellInfo(starsurge cd=15 )
-Define(sunfire 93402)
- SpellInfo(sunfire duration=14 tick=2 haste=spell )
- SpellAddTargetDebuff(sunfire sunfire=1)
-Define(thrash 106832)
-Define(thrash 77758)
- SpellInfo(thrash duration=16 tick=2 cd=6 )
- SpellAddTargetDebuff(thrash thrash=1)
-Define(tigers_fury 5217)
- SpellInfo(tigers_fury duration=6 energy=-60 cd=30 )
- SpellAddBuff(tigers_fury tigers_fury=1)
-Define(treants 106737)
- SpellInfo(treants duration=15 cd=60 )
-Define(virmens_bite 105697)
- SpellInfo(virmens_bite duration=25 cd=1 )
- SpellAddBuff(virmens_bite virmens_bite=1)
-Define(weakened_armor 113746)
- SpellInfo(weakened_armor duration=30 )
- SpellAddBuff(weakened_armor weakened_armor=1)
-Define(wild_mushroom 88747)
- SpellInfo(wild_mushroom duration=300 )
-Define(wild_mushroom_detonate 78777)
-Define(wrath 5176)
-Define(dream_of_cenarius_talent 17)
-Define(force_of_nature_talent 12)
-Define(incarnation_talent 11)
-Define(natures_swiftness_talent 4)
-Define(natures_vigil_talent 18)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(str_agi_int any=1) Spell(mark_of_the_wild)
- if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
- unless Stance(5) Spell(moonkin_form)
- }
- if TalentPoints(force_of_nature_talent) Spell(treants)
- if TalentPoints(dream_of_cenarius_talent) and not BuffPresent(dream_of_cenarius_damage) and ManaPercent() >25 Spell(healing_touch)
- if BuffStacks(shooting_stars) and {True() or not BuffPresent(solar_eclipse) } Spell(starsurge)
- if BuffPresent(lunar_eclipse) and {target.DebuffRemains(moonfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(moonfire)
- if BuffPresent(solar_eclipse) and {target.DebuffRemains(sunfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(sunfire)
- if {target.DebuffRemains(moonfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(moonfire)
- if {target.DebuffRemains(sunfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(sunfire)
- if BuffPresent(lunar_eclipse) and target.TicksRemain(moonfire) <2 Spell(moonfire)
- if BuffPresent(solar_eclipse) and target.TicksRemain(sunfire) <2 Spell(sunfire)
- if SpellCooldown(starsurge) Spell(starsurge)
- if BuffPresent(celestial_alignment) and CastTime(starfire) <BuffRemains(celestial_alignment) Spell(starfire)
- if BuffPresent(celestial_alignment) and CastTime(wrath) <BuffRemains(celestial_alignment) Spell(wrath)
- if EclipseDir() ==1 or {EclipseDir() ==0 and Eclipse() >0 } Spell(starfire)
- if EclipseDir() ==0-1 or {EclipseDir() ==0 and Eclipse() <=0 } Spell(wrath)
-}
-AddIcon mastery=1 help=offgcd
-{
- if BuffStacks(wild_mushroom) >0 and BuffPresent(solar_eclipse) Spell(wild_mushroom_detonate)
- if TalentPoints(natures_swiftness_talent) and TalentPoints(dream_of_cenarius_talent) Spell(natures_swiftness)
-}
-AddIcon mastery=1 help=moving
-{
- if target.TicksRemain(moonfire) <2 Spell(moonfire)
- if target.TicksRemain(sunfire) <2 Spell(sunfire)
- if BuffStacks(wild_mushroom) <0 Spell(wild_mushroom)
- if BuffStacks(shooting_stars) Spell(starsurge)
- if BuffPresent(lunar_eclipse) Spell(moonfire)
- Spell(sunfire)
-}
-AddIcon mastery=1 help=aoe
-{
- if BuffPresent(solar_eclipse) and BuffPresent(natures_grace) Spell(hurricane)
- if BuffPresent(solar_eclipse) and ManaPercent() >25 Spell(hurricane)
- if BuffPresent(solar_eclipse) and ManaPercent() >25 Spell(hurricane)
-}
-AddIcon mastery=1 help=cd
-{
- if not BuffPresent(starfall) Spell(starfall)
- if BuffPresent(celestial_alignment) Spell(berserking)
- if BuffPresent(celestial_alignment) or SpellCooldown(celestial_alignment) >30 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if TalentPoints(incarnation_talent) and {BuffPresent(lunar_eclipse) or BuffPresent(solar_eclipse) } Spell(incarnation)
- if {not BuffPresent(lunar_eclipse) and not BuffPresent(solar_eclipse) } and {BuffPresent(chosen_of_elune) or not TalentPoints(incarnation_talent) or SpellCooldown(incarnation) >10 } Spell(celestial_alignment)
- if TalentPoints(natures_vigil_talent) Spell(natures_vigil)
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(str_agi_int any=1) Spell(mark_of_the_wild)
- if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
- unless Stance(3) Spell(cat_form)
- Spell(savage_roar)
- }
- if target.IsInterruptible() Spell(skull_bash_cat)
- if BuffPresent(predatory_swiftness) and BuffRemains(predatory_swiftness) <=1.5 and BuffExpires(dream_of_cenarius_damage) Spell(healing_touch)
- if BuffExpires(savage_roar) Spell(savage_roar)
- if target.DebuffStacks(weakened_armor any=1) <3 if CheckBoxOn(faerie_fire_check) Spell(faerie_fire)
- if BuffPresent(predatory_swiftness) and ComboPoints() >=4 and BuffStacks(dream_of_cenarius_damage) <2 Spell(healing_touch)
- if BuffPresent(natures_swiftness) Spell(healing_touch)
- if ComboPoints() >=1 and target.DebuffPresent(rip) and target.DebuffRemains(rip) <=3 and target.HealthPercent() <=25 Spell(ferocious_bite)
- if {target.DeadIn() <=4 and ComboPoints() >=5 } or {target.DeadIn() <=1 and ComboPoints() >=3 } Spell(ferocious_bite)
- if BuffRemains(savage_roar) <=3 and ComboPoints() >0 and target.HealthPercent() <25 Spell(savage_roar)
- if ComboPoints() >=5 and BuffPresent(virmens_bite) and BuffPresent(dream_of_cenarius_damage) and target.HealthPercent() <=25 and target.DeadIn() >30 Spell(rip)
- if ComboPoints() >=5 and target.DebuffPresent(rip) and target.HealthPercent() <=25 Spell(ferocious_bite)
- if ComboPoints() >=5 and target.DeadIn() >=6 and target.DebuffRemains(rip) <2 and BuffPresent(dream_of_cenarius_damage) Spell(rip)
- if ComboPoints() >=5 and target.DeadIn() >=6 and target.DebuffRemains(rip) <2 and {BuffPresent(berserk) or target.DebuffRemains(rip) +1.9 <=SpellCooldown(tigers_fury) } Spell(rip)
- if BuffRemains(savage_roar) <=3 and ComboPoints() >0 and BuffRemains(savage_roar) +2 >target.DebuffRemains(rip) Spell(savage_roar)
- if BuffRemains(savage_roar) <=6 and ComboPoints() >=5 and BuffRemains(savage_roar) +2 <=target.DebuffRemains(rip) Spell(savage_roar)
- if ComboPoints() >=5 and target.DebuffRemains(rip) >6 Spell(ferocious_bite)
- if target.DebuffRemains(rake) <9 and BuffPresent(dream_of_cenarius_damage) Spell(rake)
- if target.DebuffRemains(rake) <3 Spell(rake)
- if BuffStacks(omen_of_clarity)
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if {ComboPoints() <5 and target.DebuffRemains(rip) <3 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 }
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if BuffRemains(predatory_swiftness) >1
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if target.DeadIn() <=8.5
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if BuffPresent(tigers_fury) or BuffPresent(berserk)
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if SpellCooldown(tigers_fury) <=3
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
- if TimeToMaxEnergy() <=1
- {
- if BuffStacks(omen_of_clarity) Spell(shred)
- if BuffPresent(berserk) Spell(shred)
- if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(mangle)
- Spell(shred)
- }
-}
-AddIcon mastery=2 help=offgcd
-{
- if {Energy() <=35 and not BuffStacks(omen_of_clarity) } Spell(tigers_fury)
- if target.DeadIn() >=6 and BuffStacks(omen_of_clarity) and target.DebuffRemains(thrash) <3 Spell(thrash)
- if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.HealthPercent() <=25 Spell(natures_swiftness)
- if BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.DebuffRemains(rip) <3 and {BuffPresent(berserk) or target.DebuffRemains(rip) +1.9 <=SpellCooldown(tigers_fury) } Spell(natures_swiftness)
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and {target.DebuffRemains(rip) >=4 or BuffPresent(berserk) } Spell(thrash)
- if BuffStacks(omen_of_clarity)
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if {ComboPoints() <5 and target.DebuffRemains(rip) <3 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 }
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if BuffRemains(predatory_swiftness) >1
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if target.DeadIn() <=8.5
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if BuffPresent(tigers_fury) or BuffPresent(berserk)
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if SpellCooldown(tigers_fury) <=3
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
- if TimeToMaxEnergy() <=1
- {
- if target.DebuffRemains(thrash) <3 and target.DeadIn() >=6 and ComboPoints() >=5 Spell(thrash)
- }
-}
-AddIcon mastery=2 help=cd
-{
- Spell(berserking)
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if BuffPresent(tigers_fury) or {target.DeadIn() <18 and SpellCooldown(tigers_fury) >6 } Spell(berserk)
-}
-]]
-
- OvaleScripts:RegisterScript("DRUID", name, desc, code)
-end
diff --git a/scripts/OvaleHunter.lua b/scripts/OvaleHunter.lua
deleted file mode 100644
index 373968b..0000000
--- a/scripts/OvaleHunter.lua
+++ /dev/null
@@ -1,245 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Beast Mastery, Marksmanship, Survival"
- local code = [[
-Define(a_murder_of_crows 131900)
-Define(aimed_shot 19434)
- SpellInfo(aimed_shot focus=50 )
-Define(arcane_shot 3044)
- SpellInfo(arcane_shot focus=20 )
-Define(aspect_of_the_hawk 13165)
- SpellInfo(aspect_of_the_hawk cd=1 )
- SpellAddBuff(aspect_of_the_hawk aspect_of_the_hawk=1)
-Define(barrage 120360)
- SpellInfo(barrage duration=3 focus=30 cd=30 )
-Define(beast_within 34692)
-Define(bestial_wrath 19574)
- SpellInfo(bestial_wrath duration=10 cd=60 )
- SpellAddBuff(bestial_wrath bestial_wrath=1)
-Define(black_arrow 3674)
- SpellInfo(black_arrow duration=20 focus=35 tick=2 cd=30 )
- SpellAddTargetDebuff(black_arrow black_arrow=1)
-Define(blood_fury 20572)
- SpellInfo(blood_fury duration=15 cd=120 )
- SpellAddBuff(blood_fury blood_fury=1)
-Define(call_pet_1 883)
-Define(chimera_shot 53209)
- SpellInfo(chimera_shot focus=45 cd=9 )
-Define(cobra_shot 77767)
- SpellInfo(cobra_shot focus=-14 )
-Define(dire_beast 120679)
- SpellInfo(dire_beast duration=15 cd=30 )
-Define(explosive_shot 53301)
- SpellInfo(explosive_shot duration=2 focus=25 tick=1 cd=6 )
- SpellAddTargetDebuff(explosive_shot explosive_shot=1)
-Define(explosive_trap 13812)
- SpellInfo(explosive_trap duration=20 )
- SpellAddTargetDebuff(explosive_trap explosive_trap=1)
-Define(fervor 82726)
- SpellInfo(fervor duration=10 focus=-50 cd=30 )
- SpellAddBuff(fervor fervor=1)
-Define(focus_fire 82692)
- SpellInfo(focus_fire duration=20 )
- SpellAddBuff(focus_fire focus_fire=1)
-Define(glaive_toss 120761)
- SpellInfo(glaive_toss duration=3 )
- SpellAddBuff(glaive_toss glaive_toss=1)
-Define(hunters_mark 1130)
- SpellInfo(hunters_mark duration=300 )
- SpellAddTargetDebuff(hunters_mark hunters_mark=1)
-Define(kill_command 34026)
- SpellInfo(kill_command focus=40 cd=6 )
- SpellAddBuff(kill_command kill_command=1)
-Define(kill_shot 53351)
- SpellInfo(kill_shot cd=10 )
-Define(lock_and_load 56343)
-Define(lynx_rush 120699)
- SpellInfo(lynx_rush duration=15 tick=3 )
- SpellAddTargetDebuff(lynx_rush lynx_rush=1)
-Define(master_marksman_fire 82926)
- SpellInfo(master_marksman_fire duration=10 )
- SpellAddBuff(master_marksman_fire master_marksman_fire=1)
-Define(multi_shot 2643)
- SpellInfo(multi_shot focus=40 )
-Define(pet_frenzy 19615)
- SpellInfo(pet_frenzy duration=30 )
- SpellAddBuff(pet_frenzy pet_frenzy=1)
-Define(powershot 109259)
- SpellInfo(powershot focus=20 cd=60 )
-Define(rapid_fire 3045)
- SpellInfo(rapid_fire duration=15 cd=180 )
- SpellAddBuff(rapid_fire rapid_fire=1)
-Define(readiness 23989)
- SpellInfo(readiness cd=300 )
-Define(serpent_sting 1978)
- SpellInfo(serpent_sting focus=25 )
- SpellAddTargetDebuff(serpent_sting serpent_sting_aura=1)
-Define(serpent_sting_aura 118253)
- SpellInfo(serpent_sting_aura duration=15 tick=3 )
- SpellAddTargetDebuff(serpent_sting_aura serpent_sting_aura=1)
-Define(stampede 57386)
- SpellInfo(stampede duration=30 cd=15 )
- SpellAddBuff(stampede stampede=1)
-Define(steady_focus 53224)
-Define(steady_shot 56641)
- SpellInfo(steady_shot focus=-14 )
-Define(thrill_of_the_hunt 34720)
- SpellInfo(thrill_of_the_hunt duration=15 )
- SpellAddBuff(thrill_of_the_hunt thrill_of_the_hunt=1)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
- unless pet.Present() Spell(call_pet_1)
- }
- if BuffStacks(pet_frenzy any=1)>4 Spell(focus_fire)
- if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
- if target.HealthPercent(less 20) Spell(kill_shot)
- Spell(kill_command)
- if SpellUsable(dire_beast) and Focus() <=90 Spell(dire_beast)
- if SpellUsable(barrage) Spell(barrage)
- if SpellUsable(powershot) Spell(powershot)
- if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
- if not target.DebuffPresent(focus_fire) and not BuffPresent(beast_within) if BuffStacks(pet_frenzy any=1)>4 Spell(focus_fire)
- if target.DebuffRemains(serpent_sting_aura) <6 Spell(cobra_shot)
- if Focus() >=61 or BuffPresent(beast_within) Spell(arcane_shot)
- Spell(cobra_shot)
-}
-AddIcon mastery=1 help=offgcd
-{
- if not InCombat()
- {
- unless Stance(1) Spell(aspect_of_the_hawk)
- }
- unless Stance(1) Spell(aspect_of_the_hawk)
- if SpellUsable(fervor) and not target.DebuffPresent(fervor) and Focus() <=65 Spell(fervor)
- if Focus() >60 and not BuffPresent(beast_within) Spell(bestial_wrath)
- if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
- if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
- if SpellUsable(glaive_toss) Spell(glaive_toss)
- if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
-}
-AddIcon mastery=1 help=aoe
-{
- Spell(explosive_trap)
- Spell(multi_shot)
- Spell(cobra_shot)
-}
-AddIcon mastery=1 help=cd
-{
- Spell(blood_fury)
- if not BuffPresent(rapid_fire) Spell(rapid_fire)
- if BuffPresent(rapid_fire) Spell(readiness)
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
- unless pet.Present() Spell(call_pet_1)
- }
- if SpellUsable(powershot) Spell(powershot)
- if SpellUsable(dire_beast) Spell(dire_beast)
- if target.HealthPercent() >80
- {
- if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
- Spell(chimera_shot)
- if PreviousSpell(steady_shot) and BuffRemains(steady_focus) <6 Spell(steady_shot)
- Spell(aimed_shot)
- Spell(steady_shot)
- }
- if SpellUsable(barrage) Spell(barrage)
- if PreviousSpell(steady_shot) and BuffRemains(steady_focus) <=5 Spell(steady_shot)
- if not target.DebuffPresent(serpent_sting_aura) Spell(serpent_sting)
- Spell(chimera_shot)
- if BuffRemains(steady_focus) <{CastTime(steady_shot) +1 } and not InFlightToTarget(steady_shot) Spell(steady_shot)
- if target.HealthPercent(less 20) Spell(kill_shot)
- if BuffStacks(master_marksman_fire) Spell(aimed_shot)
- if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
- if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) Spell(aimed_shot)
- if Focus() >=60 or {Focus() >=43 and {SpellCooldown(chimera_shot) >=CastTime(steady_shot) } } and {not BuffPresent(rapid_fire) and not BuffStacks(bloodlust any=1) } Spell(arcane_shot)
- Spell(steady_shot)
-}
-AddIcon mastery=2 help=offgcd
-{
- if not InCombat()
- {
- unless Stance(1) Spell(aspect_of_the_hawk)
- }
- unless Stance(1) Spell(aspect_of_the_hawk)
- if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
- if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
- if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
- if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
- if SpellUsable(glaive_toss) Spell(glaive_toss)
-}
-AddIcon mastery=2 help=aoe
-{
- Spell(explosive_trap)
- Spell(multi_shot)
- Spell(steady_shot)
-}
-AddIcon mastery=2 help=cd
-{
- Spell(blood_fury)
- if not BuffPresent(rapid_fire) Spell(rapid_fire)
- if target.HealthPercent() >80
- {
- Spell(readiness)
- }
- Spell(readiness)
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if target.DeadIn() >=21 and not target.DebuffPresent(ranged_vulnerability any=1) Spell(hunters_mark)
- unless pet.Present() Spell(call_pet_1)
- }
- if BuffStacks(lock_and_load) Spell(explosive_shot)
- if SpellUsable(powershot) Spell(powershot)
- if SpellUsable(barrage) Spell(barrage)
- if not target.DebuffPresent(serpent_sting_aura) and target.DeadIn() >=10 Spell(serpent_sting)
- if SpellCooldown(explosive_shot) Spell(explosive_shot)
- if target.HealthPercent(less 20) Spell(kill_shot)
- if not target.DebuffPresent(black_arrow) and target.DeadIn() >=8 Spell(black_arrow)
- if BuffStacks(thrill_of_the_hunt) and target.DebuffRemains(serpent_sting_aura) <2 Spell(multi_shot)
- if BuffStacks(thrill_of_the_hunt) Spell(arcane_shot)
- if SpellUsable(dire_beast) Spell(dire_beast)
- if target.DebuffRemains(serpent_sting_aura) <6 Spell(cobra_shot)
- if Focus() >=67 Spell(arcane_shot)
- Spell(cobra_shot)
-}
-AddIcon mastery=3 help=offgcd
-{
- if not InCombat()
- {
- unless Stance(1) Spell(aspect_of_the_hawk)
- }
- unless Stance(1) Spell(aspect_of_the_hawk)
- if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
- if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
- if SpellUsable(glaive_toss) Spell(glaive_toss)
- if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) or target.DeadIn() <=25 Spell(stampede)
- if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
-}
-AddIcon mastery=3 help=aoe
-{
- Spell(explosive_trap)
- Spell(multi_shot)
- Spell(cobra_shot)
-}
-AddIcon mastery=3 help=cd
-{
- Spell(blood_fury)
- if not BuffPresent(rapid_fire) Spell(rapid_fire)
- if BuffPresent(rapid_fire) Spell(readiness)
-}
-]]
-
- OvaleScripts:RegisterScript("HUNTER", name, desc, code)
-end
diff --git a/scripts/OvaleMage.lua b/scripts/OvaleMage.lua
deleted file mode 100644
index a77e946..0000000
--- a/scripts/OvaleMage.lua
+++ /dev/null
@@ -1,237 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Arcane, Fire, Frost"
- local code = [[
-Define(alter_time 110909)
- SpellInfo(alter_time duration=6 )
- SpellAddBuff(alter_time alter_time=1)
-Define(alter_time_activate 108978)
- SpellInfo(alter_time_activate duration=10 cd=180 )
-Define(arcane_barrage 44425)
- SpellInfo(arcane_barrage cd=3 )
-Define(arcane_blast 30451)
-Define(arcane_brilliance 1459)
- SpellInfo(arcane_brilliance duration=3600 )
- SpellAddBuff(arcane_brilliance arcane_brilliance=1)
-Define(arcane_charge 36032)
- SpellInfo(arcane_charge duration=10 )
- SpellAddBuff(arcane_charge arcane_charge=1)
-Define(arcane_missiles 5143)
- SpellInfo(arcane_missiles duration=2 )
-Define(arcane_missiles_aura 79683)
- SpellInfo(arcane_missiles_aura duration=20 )
- SpellAddBuff(arcane_missiles_aura arcane_missiles_aura=1)
-Define(arcane_power 12042)
- SpellInfo(arcane_power duration=15 cd=90 )
- SpellAddBuff(arcane_power arcane_power=1)
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(brain_freeze 44549)
-Define(combustion 11129)
- SpellInfo(combustion cd=45 )
-Define(conjure_mana_gem 759)
-Define(counterspell 2139)
- SpellInfo(counterspell duration=6 cd=24 )
-Define(fingers_of_frost_aura 44544)
- SpellInfo(fingers_of_frost_aura duration=15 )
- SpellAddBuff(fingers_of_frost_aura fingers_of_frost_aura=1)
-Define(fire_blast 2136)
- SpellInfo(fire_blast cd=8 )
-Define(fireball 133)
- SpellInfo(fireball base=1561 bonussp=1.5)
-Define(frost_armor 7302)
- SpellAddBuff(frost_armor frost_armor=1)
-Define(frost_bomb 113092)
- SpellInfo(frost_bomb duration=2 )
- SpellAddBuff(frost_bomb frost_bomb=1)
-Define(frostbolt 116)
- SpellInfo(frostbolt duration=15 )
- SpellAddBuff(frostbolt frostbolt=1)
-Define(frostfire_bolt 44614)
- SpellInfo(frostfire_bolt duration=8 )
- SpellAddBuff(frostfire_bolt frostfire_bolt=1)
-Define(frozen_orb 84714)
- SpellInfo(frozen_orb duration=10 cd=60 )
-Define(heating_up 48107)
- SpellInfo(heating_up duration=10 )
- SpellAddBuff(heating_up heating_up=1)
-Define(ice_lance 30455)
-Define(icy_veins 12472)
- SpellInfo(icy_veins duration=20 cd=180 )
- SpellAddBuff(icy_veins icy_veins=1)
-Define(ignite 12654)
- SpellInfo(ignite duration=4 tick=2 )
- SpellAddTargetDebuff(ignite ignite=1)
-Define(inferno_blast 108853)
- SpellInfo(inferno_blast cd=8 )
- SpellInfo(inferno_blast base=624.5 bonussp=0.6)
-Define(living_bomb 44457)
- SpellInfo(living_bomb duration=12 tick=3 haste=spell )
- SpellAddTargetDebuff(living_bomb living_bomb=1)
-Define(mage_armor 6117)
- SpellAddBuff(mage_armor mage_armor=1)
-Define(mana_gem 56597)
-Define(mirror_image 55342)
- SpellInfo(mirror_image duration=30 cd=180 )
- SpellAddBuff(mirror_image mirror_image=1)
-Define(molten_armor 30482)
- SpellAddBuff(molten_armor molten_armor=1)
-Define(presence_of_mind 12043)
- SpellInfo(presence_of_mind cd=90 )
- SpellAddBuff(presence_of_mind presence_of_mind=1)
-Define(pyroblast 11366)
- SpellInfo(pyroblast duration=18 tick=3 haste=spell )
- SpellInfo(pyroblast base=2061 bonussp=1.98)
- SpellAddTargetDebuff(pyroblast pyroblast=1)
-Define(pyroblast_aura 48108)
- SpellInfo(pyroblast_aura duration=15 )
- SpellAddBuff(pyroblast_aura pyroblast_aura=1)
-Define(rune_of_power 116011)
- SpellInfo(rune_of_power duration=60 )
-Define(rune_of_power_aura 116014)
-Define(scorch 2948)
-Define(time_warp 35346)
- SpellInfo(time_warp duration=6 cd=15 )
- SpellAddBuff(time_warp time_warp=1)
-Define(water_elemental 63859)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
- if BuffExpires(mage_armor) Spell(mage_armor)
- Spell(rune_of_power)
- }
- if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
- if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) Spell(rune_of_power)
- if SpellCooldown(arcane_power) ==0 and BuffRemains(rune_of_power_aura) <BuffDuration(arcane_power) Spell(rune_of_power)
- if BuffPresent(alter_time) and BuffRemains(alter_time) <2 Spell(arcane_barrage)
- if BuffPresent(alter_time) Spell(arcane_missiles)
- if BuffPresent(alter_time) Spell(arcane_blast)
- if {BuffStacks(arcane_missiles_aura) ==2 and SpellCooldown(arcane_power) >0 } or {BuffStacks(arcane_charge) >=4 and SpellCooldown(arcane_power) >8 } Spell(arcane_missiles)
- if {not target.DebuffPresent(living_bomb) or target.DebuffRemains(living_bomb) <TickTime(living_bomb) } and target.DeadIn() >TickTime(living_bomb) *3 Spell(living_bomb)
- if BuffStacks(arcane_charge) >=4 and ManaPercent() <95 Spell(arcane_barrage)
- Spell(arcane_blast)
-}
-AddIcon mastery=1 help=offgcd
-{
- if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
- cancel.Spell(alter_time)
- if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
- if ManaPercent() <80 and BuffExpires(alter_time) Spell(mana_gem)
- if BuffExpires(alter_time) and BuffPresent(arcane_power) Spell(alter_time)
-}
-AddIcon mastery=1 help=moving
-{
- Spell(arcane_barrage)
- Spell(fire_blast)
- Spell(ice_lance)
-}
-AddIcon mastery=1 help=cd
-{
- if not InCombat()
- {
- Spell(mirror_image)
- }
- Spell(mirror_image)
- if {BuffRemains(rune_of_power) >=BuffDuration(arcane_power) and BuffStacks(arcane_missiles_aura) ==2 and BuffStacks(arcane_charge) >2 } or target.DeadIn() <BuffDuration(arcane_power) +5 Spell(arcane_power)
- if BuffExpires(alter_time) and {BuffPresent(arcane_power) or target.DeadIn() <18 } Spell(berserking)
- if BuffExpires(alter_time) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if {SpellCooldown(alter_time_activate) >45 or target.DeadIn() <25 } and BuffRemains(rune_of_power) >20 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
- if BuffExpires(molten_armor) Spell(molten_armor)
- Spell(rune_of_power)
- }
- if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
- if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) and BuffExpires(alter_time) Spell(rune_of_power)
- if SpellCooldown(alter_time_activate) ==0 and BuffRemains(rune_of_power_aura) <6 Spell(rune_of_power)
- if BuffStacks(pyroblast_aura) or BuffPresent(presence_of_mind) Spell(pyroblast)
- if BuffStacks(heating_up) and BuffExpires(pyroblast_aura) Spell(inferno_blast)
- if {not target.DebuffPresent(living_bomb) or target.DebuffRemains(living_bomb) <TickTime(living_bomb) } and target.DeadIn() >TickTime(living_bomb) *3 Spell(living_bomb)
- if not target.DebuffPresent(pyroblast) Spell(pyroblast)
- Spell(fireball)
-}
-AddIcon mastery=2 help=offgcd
-{
- if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
- cancel.Spell(alter_time)
- if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
- if target.DeadIn() <22 Spell(combustion)
- if LastSpellDamage(ignite) >={{CritDamage(fireball) +CritDamage(inferno_blast) +Damage(pyroblast) } *{Mastery() /100} *0.5 } and target.DebuffPresent(pyroblast) Spell(combustion)
- if BuffExpires(alter_time) and BuffStacks(pyroblast_aura) Spell(alter_time)
-}
-AddIcon mastery=2 help=moving
-{
- Spell(scorch)
-}
-AddIcon mastery=2 help=cd
-{
- if not InCombat()
- {
- Spell(mirror_image)
- }
- if BuffExpires(alter_time) and target.DeadIn() <18 Spell(berserking)
- if BuffExpires(alter_time) Spell(berserking)
- if BuffExpires(alter_time) Spell(presence_of_mind)
- if SpellCooldown(alter_time) >30 or target.DeadIn() <15 Spell(presence_of_mind)
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if BuffExpires(spell_power_multiplier any=1) or BuffExpires(critical_strike any=1) Spell(arcane_brilliance)
- if BuffExpires(frost_armor) Spell(frost_armor)
- Spell(rune_of_power)
- }
- if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
- if BuffRemains(rune_of_power_aura) <CastTime(rune_of_power) and BuffExpires(alter_time) Spell(rune_of_power)
- if SpellCooldown(icy_veins) ==0 and BuffRemains(rune_of_power_aura) <20 Spell(rune_of_power)
- if not BuffStacks(fingers_of_frost_aura) Spell(frozen_orb)
- if BuffPresent(alter_time) and BuffPresent(brain_freeze) Spell(frostfire_bolt)
- if BuffPresent(alter_time) and BuffPresent(fingers_of_frost_aura) Spell(ice_lance)
- if target.DebuffStacks(frostbolt) <3 Spell(frostbolt)
- if BuffStacks(brain_freeze) and SpellCooldown(icy_veins) >2 Spell(frostfire_bolt)
- if BuffStacks(fingers_of_frost_aura) and SpellCooldown(icy_veins) >2 Spell(ice_lance)
- Spell(frostbolt)
-}
-AddIcon mastery=3 help=offgcd
-{
- if not InCombat()
- {
- Spell(water_elemental)
- }
- if target.IsInterruptible() if target.IsInterruptible() Spell(counterspell)
- cancel.Spell(alter_time)
- if target.HealthPercent() <25 or TimeInCombat() >5 Spell(time_warp)
- if BuffExpires(alter_time) and BuffPresent(icy_veins) Spell(alter_time)
- if target.DeadIn() >CastTime(frost_bomb) +TickTime(frost_bomb) Spell(frost_bomb)
-}
-AddIcon mastery=3 help=moving
-{
- Spell(fire_blast)
- Spell(ice_lance)
-}
-AddIcon mastery=3 help=cd
-{
- if not InCombat()
- {
- Spell(mirror_image)
- }
- Spell(mirror_image)
- if {target.DebuffStacks(frostbolt) >=3 and {BuffStacks(brain_freeze) or BuffStacks(fingers_of_frost_aura) } } or target.DeadIn() <22 Spell(icy_veins)
- if BuffPresent(icy_veins) or target.DeadIn() <18 Spell(berserking)
- if BuffPresent(icy_veins) or SpellCooldown(icy_veins) >15 or target.DeadIn() <15 Spell(presence_of_mind)
-}
-]]
-
- OvaleScripts:RegisterScript("MAGE", name, desc, code)
-end
diff --git a/scripts/OvaleMonk.lua b/scripts/OvaleMonk.lua
deleted file mode 100644
index 6873619..0000000
--- a/scripts/OvaleMonk.lua
+++ /dev/null
@@ -1,104 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Windwalker"
- local code = [[
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(blackout_kick 100784)
- SpellInfo(blackout_kick chi=2 )
-Define(chi_brew 115399)
- SpellInfo(chi_brew chi=-4 cd=90 )
-Define(chi_sphere 121286)
- SpellInfo(chi_sphere duration=120 )
-Define(chi_wave 115098)
- SpellInfo(chi_wave cd=15 )
-Define(combo_breaker_bok 116768)
- SpellInfo(combo_breaker_bok duration=15 )
- SpellAddBuff(combo_breaker_bok combo_breaker_bok=1)
-Define(combo_breaker_tp 118864)
- SpellInfo(combo_breaker_tp duration=15 )
- SpellAddBuff(combo_breaker_tp combo_breaker_tp=1)
-Define(energizing_brew 115288)
- SpellInfo(energizing_brew duration=6 cd=60 )
- SpellAddBuff(energizing_brew energizing_brew=1)
-Define(fists_of_fury 113656)
- SpellInfo(fists_of_fury duration=4 chi=3 cd=25 )
- SpellAddBuff(fists_of_fury fists_of_fury=1)
-Define(invoke_xuen 123904)
- SpellInfo(invoke_xuen duration=45 cd=180 )
-Define(jab 100780)
- SpellInfo(jab energy=40 chi=-1 )
-Define(rising_sun_kick 107428)
- SpellInfo(rising_sun_kick chi=2 cd=8 )
-Define(rushing_jade_wind 116847)
- SpellInfo(rushing_jade_wind duration=8 chi=2 cd=30 )
- SpellAddBuff(rushing_jade_wind rushing_jade_wind=1)
-Define(spinning_crane_kick 101546)
- SpellInfo(spinning_crane_kick duration=2.25 energy=40 )
- SpellAddBuff(spinning_crane_kick spinning_crane_kick=1)
-Define(tiger_palm 100787)
- SpellInfo(tiger_palm chi=1 )
-Define(tiger_power 125359)
- SpellInfo(tiger_power duration=20 )
- SpellAddBuff(tiger_power tiger_power=1)
-Define(tigereye_brew 125195)
- SpellInfo(tigereye_brew duration=120 )
- SpellAddBuff(tigereye_brew tigereye_brew=1)
-Define(tigereye_brew_use 116740)
- SpellInfo(tigereye_brew_use duration=15 cd=1 )
- SpellAddBuff(tigereye_brew_use tigereye_brew_use=1)
-Define(ascension_talent 8)
-Define(chi_brew_talent 9)
-Define(chi_wave_talent 4)
-Define(invoke_xuen_the_white_tiger_talent 17)
-Define(power_strikes_talent 7)
-Define(rushing_jade_wind_talent 16)
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- False()
- }
- if not target.DebuffRemains(rising_sun_kick) or target.DebuffRemains(rising_sun_kick) <=3 Spell(rising_sun_kick)
- if BuffRemains(tiger_power) <=3 Spell(tiger_palm)
- if TalentPoints(rushing_jade_wind_talent) Spell(rushing_jade_wind)
-
- if BuffStacks(combo_breaker_bok) and TimeToMaxEnergy() <=2 Spell(blackout_kick)
- Spell(rising_sun_kick)
- if not BuffPresent(energizing_brew) and TimeToMaxEnergy() >{4 } and BuffRemains(tiger_power) >{4 } Spell(fists_of_fury)
- if BuffStacks(combo_breaker_bok) Spell(blackout_kick)
- if {BuffStacks(combo_breaker_tp) and TimeToMaxEnergy() >=2 } or {BuffRemains(combo_breaker_tp) <=2 and BuffStacks(combo_breaker_tp) } Spell(tiger_palm)
- if TalentPoints(chi_wave_talent) and TimeToMaxEnergy() >2 Spell(chi_wave)
- if TalentPoints(ascension_talent) and Chi() <=3 Spell(jab)
- if not TalentPoints(ascension_talent) and Chi() <=2 Spell(jab)
- if {Energy() +{EnergyRegen() *{SpellCooldown(rising_sun_kick) } } } >=40 Spell(blackout_kick)
-
-}
-AddIcon mastery=3 help=offgcd
-{
- if TalentPoints(power_strikes_talent) and BuffStacks(chi_sphere) and Chi() <4 Spell(chi_sphere)
- if not BuffPresent(tigereye_brew_use) Spell(tigereye_brew)
- if TimeToMaxEnergy() >5 Spell(energizing_brew)
-}
-AddIcon mastery=3 help=aoe
-{
-
- if Chi() ==4 Spell(rising_sun_kick)
- Spell(spinning_crane_kick)
-
-}
-AddIcon mastery=3 help=cd
-{
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(berserking)
- if TalentPoints(chi_brew_talent) and Chi() ==0 Spell(chi_brew)
- if TalentPoints(invoke_xuen_talent) Spell(invoke_xuen)
-}
-]]
-
- OvaleScripts:RegisterScript("MONK", name, desc, code)
-end
diff --git a/scripts/OvalePaladin.lua b/scripts/OvalePaladin.lua
deleted file mode 100644
index 5793717..0000000
--- a/scripts/OvalePaladin.lua
+++ /dev/null
@@ -1,108 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Retribution"
- local code = [[
-Define(avenging_wrath 31884)
- SpellInfo(avenging_wrath duration=20 cd=180 )
- SpellAddBuff(avenging_wrath avenging_wrath=1)
-Define(blessing_of_kings 20217)
- SpellInfo(blessing_of_kings duration=3600 )
- SpellAddBuff(blessing_of_kings blessing_of_kings=1)
-Define(blessing_of_might 19740)
- SpellInfo(blessing_of_might duration=3600 )
- SpellAddBuff(blessing_of_might blessing_of_might=1)
-Define(crusader_strike 35395)
- SpellInfo(crusader_strike holy=-1 cd=4.5 )
-Define(divine_storm 53385)
- SpellInfo(divine_storm holy=3 )
-Define(execution_sentence_aura 114916)
- SpellInfo(execution_sentence_aura duration=10 tick=1 haste=spell )
-Define(execution_sentence 114157)
- SpellInfo(execution_sentence cd=60)
- SpellAddTargetDebuff(execution_sentence execution_sentence_aura=1)
-Define(exorcism 879)
- SpellInfo(exorcism holy=-1 cd=15 )
-Define(exorcism_glyphed 122032)
- SpellInfo(exorcism_glyphed holy=-1 cd=15)
-Define(glyph_of_double_jeopardy 121027)
- SpellInfo(glyph_of_double_jeopardy duration=10 )
- SpellAddBuff(glyph_of_double_jeopardy glyph_of_double_jeopardy=1)
-Define(guardian_of_ancient_kings 86698)
- SpellInfo(guardian_of_ancient_kings duration=30 cd=300 )
- SpellAddBuff(guardian_of_ancient_kings guardian_of_ancient_kings=1)
-Define(hammer_of_the_righteous 53595)
- SpellInfo(hammer_of_the_righteous holy=-1 cd=4.5 )
-Define(hammer_of_wrath 24275)
- SpellInfo(hammer_of_wrath holy=-0 cd=6 )
-Define(inquisition 84963)
- SpellInfo(inquisition duration=10 holy=1 )
- SpellAddBuff(inquisition inquisition=1)
-Define(judgment 20271)
- SpellInfo(judgment cd=6 )
-Define(rebuke 96231)
- SpellInfo(rebuke duration=4 cd=15 )
-Define(seal_of_righteousness 20154)
- SpellAddBuff(seal_of_righteousness seal_of_righteousness=1)
-Define(seal_of_truth 31801)
- SpellAddBuff(seal_of_truth seal_of_truth=1)
-Define(templars_verdict 85256)
- SpellInfo(templars_verdict holy=3 )
-Define(glyph_of_mass_exorcism 122028)
-AddCheckBox(showwait L(showwait) default)
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(str_agi_int any=1) Spell(blessing_of_kings)
- if not BuffPresent(mastery any=1) and not BuffPresent(str_agi_int any=1) Spell(blessing_of_might)
- unless Stance(1) Spell(seal_of_truth)
- }
- if {BuffExpires(inquisition) or BuffRemains(inquisition) <=2 } and {HolyPower() >=3 or target.DeadIn() <HolyPower() *10 } Spell(inquisition)
- if HolyPower() ==5 Spell(templars_verdict)
- Spell(hammer_of_wrath usable=1)
- if SpellCooldown(hammer_of_wrath) >0 and SpellCooldown(hammer_of_wrath) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- if Glyph(glyph_of_mass_exorcism no)
- {
- Spell(exorcism)
- if SpellCooldown(exorcism) >0 and SpellCooldown(exorcism) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- }
- if Glyph(glyph_of_mass_exorcism)
- {
- Spell(exorcism_glyphed)
- if SpellCooldown(exorcism_glyphed) >0 and SpellCooldown(exorcism_glyphed) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- }
- if not {ArmorSetParts(T15 more 4) } and {target.HealthPercent() <=20 or BuffPresent(avenging_wrath) } Spell(judgment)
- Spell(crusader_strike)
- if SpellCooldown(crusader_strike) >0 and SpellCooldown(crusader_strike) <=0.2 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- Spell(judgment)
- if BuffRemains(inquisition) >4 Spell(templars_verdict)
-}
-AddIcon mastery=3 help=offgcd
-{
- if target.IsInterruptible() Spell(rebuke)
- if BuffPresent(inquisition) Spell(execution_sentence)
-}
-AddIcon mastery=3 help=aoe
-{
- if not InCombat()
- {
- unless Stance(2) Spell(seal_of_righteousness)
- }
- if {HolyPower() ==5 } Spell(divine_storm)
- Spell(hammer_of_the_righteous)
- if BuffPresent(glyph_of_double_jeopardy) focus.Spell(judgment)
- if BuffRemains(inquisition) >4 Spell(divine_storm)
-}
-AddIcon mastery=3 help=cd
-{
- if BuffPresent(inquisition) Spell(avenging_wrath)
- if BuffPresent(avenging_wrath) Spell(guardian_of_ancient_kings)
- if BuffPresent(inquisition) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
-}
-]]
-
- OvaleScripts:RegisterScript("PALADIN", name, desc, code)
-end
diff --git a/scripts/OvalePriest.lua b/scripts/OvalePriest.lua
deleted file mode 100644
index c56b720..0000000
--- a/scripts/OvalePriest.lua
+++ /dev/null
@@ -1,128 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Shadow"
- local code = [[
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(cascade 120785)
- SpellInfo(cascade duration=0.1 )
-Define(devouring_plague 2944)
- SpellInfo(devouring_plague duration=6 tick=1 shadoworbs=1 haste=spell )
- SpellAddTargetDebuff(devouring_plague devouring_plague=1)
-Define(dispersion 47585)
- SpellInfo(dispersion duration=6 cd=120 )
- SpellAddBuff(dispersion dispersion=1)
-Define(divine_insight_shadow 124430)
- SpellInfo(divine_insight_shadow duration=12 )
- SpellAddBuff(divine_insight_shadow divine_insight_shadow=1)
-Define(divine_star 110744)
- SpellInfo(divine_star cd=15 )
-Define(halo 120517)
- SpellInfo(halo duration=5.5 cd=40 )
-Define(inner_fire 588)
- SpellAddBuff(inner_fire inner_fire=1)
-Define(inner_will 73413)
- SpellAddBuff(inner_will inner_will=1)
-Define(mind_blast 8092)
- SpellInfo(mind_blast shadoworbs=-1 cd=8)
-Define(mind_flay 15407)
- SpellInfo(mind_flay duration=3 canStopChannelling=1 )
- SpellAddTargetDebuff(mind_flay mind_flay=1)
-Define(mind_flay_insanity 129197)
- SpellInfo(mind_flay_insanity duration=3 tick=1 haste=spell canStopChannelling=1 )
- SpellAddTargetDebuff(mind_flay_insanity mind_flay_insanity=1)
-Define(mind_sear 48045)
- SpellInfo(mind_sear duration=5 canStopChannelling=1 )
- SpellAddBuff(mind_sear mind_sear=1)
-Define(mind_spike 73510)
-Define(mindbender 123040)
- SpellInfo(mindbender duration=15 cd=60 )
-Define(power_infusion 10060)
- SpellInfo(power_infusion duration=20 cd=120 )
- SpellAddBuff(power_infusion power_infusion=1)
-Define(power_word_fortitude 21562)
- SpellInfo(power_word_fortitude duration=3600 )
- SpellAddBuff(power_word_fortitude power_word_fortitude=1)
-Define(shadow_word_death 32379)
- SpellInfo(shadow_word_death cd=8 )
-Define(shadow_word_pain 589)
- SpellInfo(shadow_word_pain duration=18 tick=3 haste=spell )
- SpellAddTargetDebuff(shadow_word_pain shadow_word_pain=1)
-Define(shadowfiend 34433)
- SpellInfo(shadowfiend duration=12 cd=180 )
-Define(shadowform 15473)
- SpellAddBuff(shadowform shadowform=1)
-Define(surge_of_darkness 87160)
- SpellInfo(surge_of_darkness duration=10 )
- SpellAddBuff(surge_of_darkness surge_of_darkness=1)
-Define(vampiric_embrace 15286)
- SpellInfo(vampiric_embrace duration=15 cd=180 )
- SpellAddBuff(vampiric_embrace vampiric_embrace=1)
-Define(vampiric_touch 34914)
- SpellInfo(vampiric_touch duration=15 tick=3 haste=spell )
- SpellAddTargetDebuff(vampiric_touch vampiric_touch=1)
-Define(cascade_talent 16)
-Define(divine_star_talent 17)
-Define(halo_talent 18)
-Define(mindbender_talent 8)
-Define(power_infusion_talent 14)
-AddCheckBox(showwait L(showwait) default)
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(stamina any=1) Spell(power_word_fortitude)
- if BuffExpires(inner_fire) and BuffExpires(inner_will) Spell(inner_fire)
- if BuffExpires(shadowform) Spell(shadowform)
- }
- if BuffExpires(shadowform) Spell(shadowform)
- if TalentPoints(mindbender_talent) Spell(mindbender)
- if ShadowOrbs() ==3 and {SpellCooldown(mind_blast) <1.5 or target.HealthPercent() <20 and SpellCooldown(shadow_word_death) <1.5 } Spell(devouring_plague)
- if target.HealthPercent(less 20) Spell(shadow_word_death)
- Spell(mind_blast)
- if target.TicksRemain(devouring_plague) ==1 Spell(mind_flay_insanity)
- Spell(mind_flay_insanity)
- if not target.DebuffPresent(shadow_word_pain) Spell(shadow_word_pain)
- if target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) Spell(vampiric_touch)
- if BuffStacks(surge_of_darkness) ==2 Spell(mind_spike)
- if target.TicksRemain(shadow_word_pain) <=1 Spell(shadow_word_pain)
- if target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) +TickTime(vampiric_touch) Spell(vampiric_touch)
- if ShadowOrbs() ==3 and target.TicksRemain(devouring_plague) <=1 Spell(devouring_plague)
- if TalentPoints(halo_talent) Spell(halo)
- if TalentPoints(cascade_talent) Spell(cascade)
- if target.HealthPercent() <20 and SpellCooldown(shadow_word_death) <0.5 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- if SpellCooldown(mind_blast) <0.5 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- if BuffStacks(surge_of_darkness) Spell(mind_spike)
- Spell(mind_flay)
-}
-AddIcon mastery=3 help=offgcd
-{
- if TalentPoints(divine_star_talent) Spell(divine_star)
-}
-AddIcon mastery=3 help=moving
-{
- if target.HealthPercent(less 20) Spell(shadow_word_death)
- if BuffStacks(divine_insight_shadow) and SpellCooldown(mind_blast) Spell(mind_blast)
- Spell(shadow_word_pain)
-}
-AddIcon mastery=3 help=aoe
-{
- Spell(mind_sear)
-}
-AddIcon mastery=3 help=cd
-{
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if not TalentPoints(mindbender_talent) Spell(shadowfiend)
- if TalentPoints(power_infusion_talent) Spell(power_infusion)
- Spell(berserking)
- if ShadowOrbs() ==3 and Health() <=40 Spell(vampiric_embrace)
- Spell(dispersion)
-}
-]]
-
- OvaleScripts:RegisterScript("PRIEST", name, desc, code)
-end
diff --git a/scripts/OvaleRogue.lua b/scripts/OvaleRogue.lua
deleted file mode 100644
index c575617..0000000
--- a/scripts/OvaleRogue.lua
+++ /dev/null
@@ -1,209 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Assassination, Combat, Subtlety"
- local code = [[
-Define(adrenaline_rush 13750)
- SpellInfo(adrenaline_rush duration=15 cd=180 )
- SpellAddBuff(adrenaline_rush adrenaline_rush=1)
-Define(ambush 8676)
- SpellInfo(ambush energy=60 combo=2 buff_combo=shadow_blades )
-Define(anticipation 114015)
-Define(backstab 53)
- SpellInfo(backstab energy=35 combo=1 buff_combo=shadow_blades )
-Define(bandits_guile 84654)
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(deep_insight 84747)
- SpellInfo(deep_insight duration=15 )
- SpellAddBuff(deep_insight deep_insight=1)
-Define(dispatch 111240)
- SpellInfo(dispatch energy=30 combo=1 buff_combo=shadow_blades )
-Define(envenom 32645)
- SpellInfo(envenom duration=1 combo=0 energy=35 )
- SpellAddBuff(envenom envenom=1)
-Define(eviscerate 2098)
- SpellInfo(eviscerate combo=0 energy=35 )
-Define(expose_armor 8647)
- SpellInfo(expose_armor energy=25 combo=1 buff_combo=shadow_blades )
- AddCheckBox(expose_armor_check SpellName(expose_armor))
-Define(find_weakness 91021)
- SpellInfo(find_weakness duration=10 )
- SpellAddBuff(find_weakness find_weakness=1)
-Define(hemorrhage 16511)
- SpellInfo(hemorrhage energy=30 combo=1 buff_combo=shadow_blades )
-Define(honor_among_thieves 51701)
-Define(kick 1766)
- SpellInfo(kick duration=5 cd=15 )
-Define(killing_spree 51690)
- SpellInfo(killing_spree duration=3 cd=120 )
- SpellAddBuff(killing_spree killing_spree=1)
-Define(master_of_subtlety 31223)
-Define(mutilate 1329)
- SpellInfo(mutilate energy=55 combo=2 buff_combo=shadow_blades )
-Define(premeditation 14183)
- SpellInfo(premeditation duration=18 combo=2 cd=20 )
-Define(preparation 14185)
- SpellInfo(preparation cd=300 )
-Define(revealing_strike 84617)
- SpellInfo(revealing_strike duration=24 tick=3 energy=40 combo=1 buff_combo=shadow_blades )
- SpellAddTargetDebuff(revealing_strike revealing_strike=1)
-Define(rupture 1943)
- SpellInfo(rupture duration=4 tick=2 combo=0 energy=25 )
- SpellAddTargetDebuff(rupture rupture=1)
-Define(shadow_blades 121471)
- SpellInfo(shadow_blades duration=12 cd=180 )
- SpellAddBuff(shadow_blades shadow_blades=1)
-Define(shadow_dance 51713)
- SpellInfo(shadow_dance duration=8 cd=60 )
- SpellAddBuff(shadow_dance shadow_dance=1)
-Define(sinister_strike 1752)
- SpellInfo(sinister_strike energy=40 combo=1 buff_combo=shadow_blades )
-Define(slice_and_dice 5171)
- SpellInfo(slice_and_dice duration=6 combo=0 energy=25 )
- SpellAddBuff(slice_and_dice slice_and_dice=1)
-Define(stealth 63880)
-Define(stealthed 1784)
- SpellInfo(stealthed cd=6 )
- SpellAddBuff(stealthed stealthed=1)
-Define(tricks_of_the_trade 57933)
- SpellInfo(tricks_of_the_trade duration=6 )
- SpellAddBuff(tricks_of_the_trade tricks_of_the_trade=1)
-Define(vanish 1856)
- SpellInfo(vanish cd=120 )
- SpellAddBuff(vanish vanish=1)
-Define(vendetta 79140)
- SpellInfo(vendetta duration=20 cd=120 )
- SpellAddBuff(vendetta vendetta=1)
-Define(weakened_armor 113746)
- SpellInfo(weakened_armor duration=30 )
- SpellAddBuff(weakened_armor weakened_armor=1)
-Define(anticipation_talent 18)
-Define(shadow_focus_talent 3)
-Define(subterfuge_talent 2)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if WeaponEnchantExpires(mainhand 300) Item(6497)
- }
- if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
- Spell(ambush usable=1)
- if BuffRemains(slice_and_dice) <2 Spell(slice_and_dice)
- if target.TicksRemain(rupture) <2 and Energy() >90 Spell(dispatch usable=1)
- if target.TicksRemain(rupture) <2 and Energy() >90 Spell(mutilate)
- if target.TicksRemain(rupture) <2 or {ComboPoints() ==5 and target.TicksRemain(rupture) <3 } Spell(rupture)
- if ComboPoints() >4 Spell(envenom)
- if ComboPoints() >=2 and BuffRemains(slice_and_dice) <3 Spell(envenom)
- if ComboPoints() <5 Spell(dispatch usable=1)
- Spell(mutilate)
-}
-AddIcon mastery=1 help=offgcd
-{
- if not InCombat()
- {
- Spell(stealth)
- }
- if target.IsInterruptible() Spell(kick)
- Spell(tricks_of_the_trade)
-}
-AddIcon mastery=1 help=cd
-{
- if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(berserking)
- if TimeInCombat() >10 and not BuffPresent(stealthed) and not BuffPresent(shadow_blades) Spell(vanish)
- if {BuffStacks(bloodlust any=1) or TimeInCombat() >60 } Spell(shadow_blades)
- Spell(vendetta)
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if WeaponEnchantExpires(mainhand 300) Item(6497)
- }
- if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
- Spell(ambush usable=1)
- if BuffRemains(slice_and_dice) <2 or {BuffRemains(slice_and_dice) <15 and BuffStacks(bandits_guile) ==11 and ComboPoints() >=4 } Spell(slice_and_dice)
- if ComboPoints() <5 or not target.DebuffPresent(revealing_strike)
- {
- if target.TicksRemain(revealing_strike) <2 Spell(revealing_strike)
- Spell(sinister_strike)
- }
- if not TalentPoints(anticipation_talent) or BuffPresent(deep_insight) or SpellCooldown(shadow_blades) <=11 or BuffStacks(anticipation) >=4 or {BuffPresent(shadow_blades) and BuffStacks(anticipation) >=3 }
- {
- if target.TicksRemain(rupture) <2 and target.DeadIn() >=26 Spell(rupture)
- Spell(eviscerate)
- }
- if Energy() >60 or BuffExpires(deep_insight) or BuffRemains(deep_insight) >5 -ComboPoints()
- {
- if target.TicksRemain(revealing_strike) <2 Spell(revealing_strike)
- Spell(sinister_strike)
- }
-}
-AddIcon mastery=2 help=offgcd
-{
- if not InCombat()
- {
- Spell(stealth)
- }
- if target.IsInterruptible() Spell(kick)
-}
-AddIcon mastery=2 help=cd
-{
- if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
- if TimeInCombat() ==0 or BuffPresent(shadow_blades) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if TimeInCombat() ==0 or BuffPresent(shadow_blades) Spell(berserking)
- if TimeInCombat() >10 and {ComboPoints() <3 or {TalentPoints(anticipation_talent) and BuffStacks(anticipation) <3 } or {BuffExpires(shadow_blades) and {ComboPoints() <4 or {TalentPoints(anticipation_talent) and BuffStacks(anticipation) <4 } } } } and {{TalentPoints(shadow_focus_talent) and BuffExpires(adrenaline_rush) and Energy() <20 } or {TalentPoints(subterfuge_talent) and Energy() >=90 } or {not TalentPoints(shadow_focus_talent) and not TalentPoints(subterfuge_talent) and Energy() >=60 } } Spell(vanish)
- if not ArmorSetParts(T14 more 4) and TimeInCombat() >5 Spell(shadow_blades)
- if not ArmorSetParts(T14 more 4) and Energy() <35 and BuffExpires(adrenaline_rush) Spell(killing_spree)
- if not ArmorSetParts(T14 more 4) and {Energy() <35 or BuffPresent(shadow_blades) } Spell(adrenaline_rush)
- if ArmorSetParts(T14 more 4) and {{SpellCooldown(killing_spree) >30.5 and SpellCooldown(adrenaline_rush) <=9 } or {Energy() <35 and {SpellCooldown(killing_spree) ==0 or SpellCooldown(adrenaline_rush) ==0 } } } Spell(shadow_blades)
- if ArmorSetParts(T14 more 4) and {{BuffPresent(shadow_blades) and BuffExpires(adrenaline_rush) and {Energy() <35 or BuffRemains(shadow_blades) <=3.5 } } or {BuffExpires(shadow_blades) and SpellCooldown(shadow_blades) >30 } } Spell(killing_spree)
- if ArmorSetParts(T14 more 4) and BuffPresent(shadow_blades) and {Energy() <35 or BuffRemains(shadow_blades) <=15 } Spell(adrenaline_rush)
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if WeaponEnchantExpires(mainhand 300) Item(6497)
- Spell(slice_and_dice)
- }
- if {target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 } and ComboPoints() <5 if CheckBoxOn(expose_armor_check) Spell(expose_armor)
- if ComboPoints() <=5 and BuffStacks(anticipation) ==0 Spell(ambush usable=1)
- if BuffRemains(slice_and_dice) <3 and ComboPoints() ==5 Spell(slice_and_dice)
- if ComboPoints() ==5 and target.DebuffRemains(rupture) <5 Spell(rupture)
- if BuffStacks(anticipation) <3 and BuffRemains(shadow_dance) <=2 Spell(ambush usable=1)
- if ComboPoints() ==5 Spell(eviscerate)
- if ComboPoints() <4 and {target.DebuffRemains(hemorrhage) <4 or target.TargetIsPlayer() } Spell(hemorrhage)
- if ComboPoints() <5 and Energy() >80 and {target.DebuffRemains(hemorrhage) <4 or target.TargetIsPlayer() } Spell(hemorrhage)
- if ComboPoints() <4 and {SpellCooldown(shadow_dance) >7 or {SpellCooldown(shadow_dance) ==0 and TimeInCombat() <=9 } } Spell(backstab)
- if ComboPoints() <5 and Energy() >80 and SpellCooldown(shadow_dance) >=2 Spell(backstab)
-}
-AddIcon mastery=3 help=offgcd
-{
- if not InCombat()
- {
- Spell(stealth)
- Spell(premeditation usable=1)
- }
- if target.IsInterruptible() Spell(kick)
- if Energy() >=75 and BuffExpires(stealthed) and not target.DebuffPresent(find_weakness) Spell(shadow_dance)
- if {ComboPoints() <=3 and SpellCooldown(honor_among_thieves) >1.75 } or ComboPoints() <=2 Spell(premeditation usable=1)
- Spell(tricks_of_the_trade)
-}
-AddIcon mastery=3 help=cd
-{
- if not BuffPresent(vanish) and SpellCooldown(vanish) >60 Spell(preparation)
- Spell(shadow_blades)
- if BuffPresent(shadow_dance) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if BuffPresent(shadow_dance) Spell(berserking)
- if TimeInCombat() >10 and Energy() >=45 and Energy() <=75 and ComboPoints() <=3 and not BuffPresent(shadow_dance) and not BuffPresent(master_of_subtlety) and not target.DebuffPresent(find_weakness) Spell(vanish)
-}
-]]
-
- OvaleScripts:RegisterScript("ROGUE", name, desc, code)
-end
diff --git a/scripts/OvaleShaman.lua b/scripts/OvaleShaman.lua
deleted file mode 100644
index e892728..0000000
--- a/scripts/OvaleShaman.lua
+++ /dev/null
@@ -1,219 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Elemental, Enhancement"
- local code = [[
-Define(ancestral_swiftness 16188)
- SpellInfo(ancestral_swiftness cd=90 )
- SpellAddBuff(ancestral_swiftness ancestral_swiftness=1)
-Define(ascendance 114049)
- SpellInfo(ascendance cd=180 )
-Define(berserking 26297)
- SpellInfo(berserking duration=10 cd=180 )
- SpellAddBuff(berserking berserking=1)
-Define(blood_fury 20572)
- SpellInfo(blood_fury duration=15 cd=120 )
- SpellAddBuff(blood_fury blood_fury=1)
-Define(bloodlust 2825)
- SpellInfo(bloodlust duration=40 cd=300 )
- SpellAddBuff(bloodlust bloodlust=1)
-Define(chain_lightning 421)
- SpellInfo(chain_lightning cd=3 )
-Define(earth_elemental_totem 2062)
- SpellInfo(earth_elemental_totem duration=60 cd=300 )
-Define(earth_shock 8042)
- SpellInfo(earth_shock sharedcd=shock cd=6 )
-Define(earthquake 61882)
- SpellInfo(earthquake duration=10 cd=10 )
- SpellAddBuff(earthquake earthquake=1)
-Define(elemental_blast 117014)
- SpellInfo(elemental_blast cd=12 )
-Define(elemental_mastery 16166)
- SpellInfo(elemental_mastery duration=20 cd=90 )
- SpellAddBuff(elemental_mastery elemental_mastery=1)
-Define(feral_spirit 51533)
- SpellInfo(feral_spirit duration=30 cd=120 )
-Define(fire_elemental_totem 2894)
- SpellInfo(fire_elemental_totem duration=60 cd=300 )
-Define(fire_nova 1535)
- SpellInfo(fire_nova cd=4 )
-Define(flame_shock 8050)
- SpellInfo(flame_shock duration=30 tick=3 haste=spell sharedcd=shock cd=6 )
- SpellAddTargetDebuff(flame_shock flame_shock=1)
-Define(flametongue_weapon 8024)
-Define(heroism 32182)
- SpellInfo(heroism duration=40 cd=300 )
- SpellAddBuff(heroism heroism=1)
-Define(lava_beam 114074)
-Define(lava_burst 51505)
- SpellInfo(lava_burst cd=8 )
-Define(lava_lash 60103)
- SpellInfo(lava_lash cd=10 )
-Define(lava_surge 77756)
-Define(lifeblood 138724)
- SpellInfo(lifeblood mana=-9935 )
- SpellAddBuff(lifeblood lifeblood=1)
-Define(lightning_bolt 403)
-Define(lightning_shield 324)
- SpellInfo(lightning_shield duration=3600 )
- SpellAddBuff(lightning_shield lightning_shield=1)
-Define(maelstrom_weapon 53817)
- SpellInfo(maelstrom_weapon duration=30 )
- SpellAddBuff(maelstrom_weapon maelstrom_weapon=1)
-Define(magma_totem 8187)
-Define(searing_totem 3599)
- SpellInfo(searing_totem duration=60 )
-Define(spiritwalkers_grace 79206)
- SpellInfo(spiritwalkers_grace duration=15 cd=120 )
- SpellAddBuff(spiritwalkers_grace spiritwalkers_grace=1)
-Define(stormblast 115356)
- SpellInfo(stormblast duration=15 sharedcd=strike cd=8 )
- SpellAddBuff(stormblast stormblast=1)
-Define(stormlash 120687)
-Define(stormlash_totem 120668)
- SpellInfo(stormlash_totem duration=10 cd=300 )
-Define(stormstrike 17364)
- SpellInfo(stormstrike duration=15 sharedcd=strike cd=8 )
- SpellAddBuff(stormstrike stormstrike=1)
-Define(strike 138537)
- SpellInfo(strike energy=40 )
-Define(thunderstorm 51490)
- SpellInfo(thunderstorm duration=5 cd=45 )
- SpellAddBuff(thunderstorm thunderstorm=1)
-Define(unleash_elements 73680)
- SpellInfo(unleash_elements cd=15 )
-Define(unleash_flame 73683)
- SpellInfo(unleash_flame duration=8 )
- SpellAddBuff(unleash_flame unleash_flame=1)
-Define(wind_shear 57994)
- SpellInfo(wind_shear duration=3 cd=12 )
-Define(windfury_weapon 8232)
-Define(ancestral_swiftness_talent 11)
-Define(elemental_blast_talent 18)
-Define(elemental_mastery_talent 10)
-Define(unleashed_fury_talent 16)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if WeaponEnchantExpires(mainhand) main.Spell(flametongue_weapon)
- if not BuffPresent(lightning_shield) Spell(lightning_shield)
- }
-
- if TalentPoints(unleashed_fury_talent) and not BuffPresent(ascendance) Spell(unleash_elements)
- if target.DebuffRemains(flame_shock) >CastTime(lava_burst) and {BuffPresent(ascendance) or SpellCooldown(lava_burst) } Spell(lava_burst)
- if target.TicksRemain(flame_shock) <2 Spell(flame_shock)
- if TalentPoints(elemental_blast_talent) Spell(elemental_blast)
- if BuffStacks(lightning_shield) ==7 Spell(earth_shock)
- if BuffStacks(lightning_shield) >3 and target.DebuffRemains(flame_shock) >SpellCooldown(earth_shock) and target.DebuffRemains(flame_shock) <SpellCooldown(earth_shock) +TickTime(flame_shock) Spell(earth_shock)
- if TimeInCombat() >60 and target.DebuffRemains(flame_shock) <=BuffDuration(ascendance) and SpellCooldown(ascendance) +BuffDuration(ascendance) <BuffDuration(flame_shock) Spell(flame_shock)
- if SpellCooldown(fire_elemental_totem) >20 and not TotemPresent(fire) Spell(searing_totem)
- Spell(lightning_bolt)
-
-}
-AddIcon mastery=1 help=offgcd
-{
- if target.IsInterruptible() Spell(wind_shear)
-}
-AddIcon mastery=1 help=aoe
-{
-
- Spell(lava_beam)
- if not TotemPresent(fire) Spell(magma_totem)
- if Enemies() <=2 and not TotemPresent(fire) Spell(searing_totem)
- if Enemies() <3 and target.DebuffRemains(flame_shock) >CastTime(lava_burst) and SpellCooldown(lava_burst) Spell(lava_burst)
- if not target.DebuffPresent(flame_shock) and Enemies() <3 Spell(flame_shock)
- Spell(earthquake)
- if ManaPercent() <80 Spell(thunderstorm)
- if ManaPercent() >10 Spell(chain_lightning)
- Spell(lightning_bolt)
-
-}
-AddIcon mastery=1 help=cd
-{
- if target.HealthPercent() <25 or TimeInCombat() >5 { Spell(bloodlust) Spell(heroism) }
- if not TotemPresent(air) and not BuffPresent(stormlash) and {BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } Spell(stormlash_totem)
- if BuffPresent(bloodlust any=1) or BuffPresent(ascendance) or {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } Spell(blood_fury)
- if TalentPoints(elemental_mastery_talent) and {TimeInCombat() >15 and {{not BuffPresent(bloodlust any=1) and TimeInCombat() <120 } or {not BuffPresent(berserking) and not BuffPresent(bloodlust any=1) and BuffPresent(ascendance) } or {TimeInCombat() >=200 and {SpellCooldown(ascendance) >30 or Level() <87 } } } } Spell(elemental_mastery)
- if not TotemPresent(fire) Spell(fire_elemental_totem)
- if Enemies() >1 or {target.DebuffRemains(flame_shock) >BuffDuration(ascendance) and {target.DeadIn() <20 or BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } and SpellCooldown(lava_burst) >0 } Spell(ascendance)
-
- if {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } or BuffPresent(ascendance) or BuffPresent(bloodlust any=1) or TotemPresent(fire) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if TalentPoints(ancestral_swiftness_talent) and not BuffPresent(ascendance) Spell(ancestral_swiftness)
- if BuffPresent(ascendance) Spell(spiritwalkers_grace)
- if not TotemPresent(earth) and SpellCooldown(fire_elemental_totem) >=60 Spell(earth_elemental_totem)
- if {{TalentPoints(elemental_blast_talent) and SpellCooldown(elemental_blast) ==0 } or {SpellCooldown(lava_burst) ==0 and not BuffStacks(lava_surge) } } or {BuffDuration(raid_movement) >=SpellCooldown(unleash_elements) +SpellCooldown(earth_shock) } Spell(spiritwalkers_grace)
-
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if WeaponEnchantExpires(mainhand) main.Spell(windfury_weapon)
- if WeaponEnchantExpires(offhand) off.Spell(flametongue_weapon)
- if not BuffPresent(lightning_shield) Spell(lightning_shield)
- }
-
- if not TotemPresent(fire) Spell(searing_totem)
- if TalentPoints(unleashed_fury_talent) Spell(unleash_elements)
- if TalentPoints(elemental_blast_talent) and BuffStacks(maelstrom_weapon) >=1 Spell(elemental_blast)
- if BuffStacks(maelstrom_weapon) ==5 or {ArmorSetParts(T13 more 4) ==1 and BuffStacks(maelstrom_weapon) >=4 and False() } Spell(lightning_bolt)
- Spell(stormblast)
- Spell(stormstrike)
- if BuffPresent(unleash_flame) and not target.DebuffPresent(flame_shock) Spell(flame_shock)
- Spell(lava_lash)
- if ArmorSetParts(T15 more 2) ==1 and BuffStacks(maelstrom_weapon) >=4 and not BuffPresent(ascendance) Spell(lightning_bolt)
- if BuffPresent(unleash_flame) or {not BuffPresent(unleash_flame) and not target.DebuffPresent(flame_shock) and SpellCooldown(unleash_elements) >5 } Spell(flame_shock)
- Spell(unleash_elements)
- if BuffStacks(maelstrom_weapon) >=3 and not BuffPresent(ascendance) Spell(lightning_bolt)
- if BuffPresent(ancestral_swiftness) Spell(lightning_bolt)
- if BuffPresent(unleash_flame) and target.DebuffRemains(flame_shock) <=3 Spell(flame_shock)
- Spell(earth_shock)
- if BuffStacks(maelstrom_weapon) >1 and not BuffPresent(ascendance) Spell(lightning_bolt)
-
-}
-AddIcon mastery=2 help=offgcd
-{
- if target.IsInterruptible() Spell(wind_shear)
-}
-AddIcon mastery=2 help=aoe
-{
-
- if not TotemPresent(fire) Spell(magma_totem)
- if Enemies() <=5 and not TotemPresent(fire) Spell(searing_totem)
- if {Enemies() <=5 and DebuffCount(flame_shock) ==Enemies() } or DebuffCount(flame_shock) >=5 Spell(fire_nova)
- if target.DebuffPresent(flame_shock) Spell(lava_lash)
- if BuffStacks(maelstrom_weapon) >=3 Spell(chain_lightning)
- Spell(unleash_elements)
- if not target.DebuffPresent(flame_shock) Spell(flame_shock)
- Spell(stormblast)
- Spell(stormstrike)
- if BuffStacks(maelstrom_weapon) ==5 and SpellCooldown(chain_lightning) >=2 Spell(lightning_bolt)
- if BuffStacks(maelstrom_weapon) >1 Spell(chain_lightning)
- if BuffStacks(maelstrom_weapon) >1 and not BuffPresent(ascendance) Spell(lightning_bolt)
-
-}
-AddIcon mastery=2 help=cd
-{
- if target.HealthPercent() <25 or TimeInCombat() >5 { Spell(bloodlust) Spell(heroism) }
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- if not TotemPresent(air) and not BuffPresent(stormlash) and {BuffPresent(bloodlust any=1) or TimeInCombat() >=60 } Spell(stormlash_totem)
- Spell(blood_fury)
- if TalentPoints(elemental_mastery_talent) and {not Glyph(55455) or SpellCooldown(fire_elemental_totem) ==0 or SpellCooldown(fire_elemental_totem) >70 } Spell(elemental_mastery)
- if not TotemPresent(fire) and {BuffPresent(bloodlust any=1) or BuffPresent(lifeblood) or BuffPresent(elemental_mastery) } or TimeInCombat() >=60 Spell(fire_elemental_totem)
- if not TotemPresent(fire) and target.DeadIn() <=0 +10 Spell(fire_elemental_totem)
- if SpellCooldown(strike) >=3 Spell(ascendance)
-
- if ArmorSetParts(T15 more 4) ==1 Spell(feral_spirit)
- if TalentPoints(ancestral_swiftness_talent) and BuffStacks(maelstrom_weapon) <2 Spell(ancestral_swiftness)
- Spell(feral_spirit)
- if not TotemPresent(earth) and SpellCooldown(fire_elemental_totem) >=50 Spell(earth_elemental_totem)
- Spell(spiritwalkers_grace)
-
-}
-]]
-
- OvaleScripts:RegisterScript("SHAMAN", name, desc, code)
-end
diff --git a/scripts/OvaleWarlock.lua b/scripts/OvaleWarlock.lua
deleted file mode 100644
index eea6ab4..0000000
--- a/scripts/OvaleWarlock.lua
+++ /dev/null
@@ -1,310 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Affliction, Demonology, Destruction"
- local code = [[
-Define(agony 980)
- SpellInfo(agony duration=24 tick=2 haste=spell )
- SpellAddTargetDebuff(agony agony=1)
-Define(backdraft 117896)
-Define(blood_fury 20572)
- SpellInfo(blood_fury duration=15 cd=120 )
- SpellAddBuff(blood_fury blood_fury=1)
-Define(chaos_bolt 116858)
- SpellInfo(chaos_bolt burningembers=10 tick=1 haste=spell )
- SpellAddTargetDebuff(chaos_bolt chaos_bolt=1)
-Define(conflagrate 17962)
- SpellInfo(conflagrate duration=5 )
- SpellAddBuff(conflagrate conflagrate=1)
-Define(corruption 172)
- SpellInfo(corruption duration=18 tick=2 haste=spell stance=0)
- SpellAddTargetDebuff(corruption corruption=1)
-Define(curse_of_the_elements 1490)
- SpellInfo(curse_of_the_elements duration=300 )
- SpellAddTargetDebuff(curse_of_the_elements aura_of_the_elements=1)
-Define(dark_intent 109773)
- SpellInfo(dark_intent duration=3600 )
- SpellAddBuff(dark_intent dark_intent=1)
-Define(dark_soul_instability 113858)
- SpellInfo(dark_soul_instability duration=20 cd=120 )
- SpellAddBuff(dark_soul_instability dark_soul_instability=1)
-Define(dark_soul_knowledge 113861)
- SpellInfo(dark_soul_knowledge duration=20 cd=120 )
- SpellAddBuff(dark_soul_knowledge dark_soul_knowledge=1)
-Define(dark_soul_misery 113860)
- SpellInfo(dark_soul_misery duration=20 cd=120 )
- SpellAddBuff(dark_soul_misery dark_soul_misery=1)
-Define(doom 603)
- SpellInfo(doom duration=60 demonicfury=60 tick=15 haste=spell stance=1)
- SpellAddTargetDebuff(doom doom=1)
-Define(drain_soul 1120)
- SpellInfo(drain_soul duration=12 tick=2 haste=spell canStopChannelling=1 )
- SpellAddTargetDebuff(drain_soul drain_soul=1)
-Define(fel_flame 77799)
-Define(felstorm 89751)
- SpellInfo(felstorm duration=6 energy=60 cd=45 )
- SpellAddBuff(felstorm felstorm=1)
-Define(fire_and_brimstone 108683)
- SpellInfo(fire_and_brimstone burningembers=10 cd=1 )
- SpellAddBuff(fire_and_brimstone fire_and_brimstone=1)
-Define(grimoire_of_sacrifice 108503)
- SpellInfo(grimoire_of_sacrifice duration=3600 cd=30 )
- SpellAddBuff(grimoire_of_sacrifice grimoire_of_sacrifice=1)
-Define(hand_of_guldan 105174)
- SpellInfo(hand_of_guldan stance=0)
-Define(haunt 48181)
- SpellInfo(haunt duration=8 tick=2 shards=1 )
- SpellAddBuff(haunt haunt=1)
-Define(havoc 80240)
- SpellInfo(havoc duration=15 cd=25 )
- SpellAddBuff(havoc havoc=1)
-Define(hellfire 1949)
- SpellInfo(hellfire duration=14 tick=1 haste=spell canStopChannelling=1 )
- SpellAddTargetDebuff(hellfire hellfire=1)
-Define(immolate 348)
- SpellInfo(immolate duration=15 tick=3 haste=spell )
- SpellAddTargetDebuff(immolate immolate=1)
-Define(immolate_aoe 108686)
- SpellInfo(immolate_aoe duration=15 tick=3 haste=spell )
-SpellList(immolate_debuff immolate immolate_aoe)
-Define(immolation_aura 104025)
- SpellInfo(immolation_aura duration=10 demonicfury=0 stance=1)
- SpellAddBuff(immolation_aura immolation_aura=1)
-Define(incinerate 29722)
-Define(life_tap 1454)
- SpellInfo(life_tap mana=-15 )
- SpellAddBuff(life_tap life_tap=1)
-Define(malefic_grasp 103103)
- SpellInfo(malefic_grasp duration=4 tick=1 haste=spell canStopChannelling=1 )
- SpellAddTargetDebuff(malefic_grasp malefic_grasp=1)
-Define(melee 103988)
- SpellInfo(melee stance=1)
-Define(metamorphosis 103958)
- SpellInfo(metamorphosis demonicfury=0 cd=10 )
- SpellAddBuff(metamorphosis metamorphosis=1)
-Define(molten_core 122355)
- SpellInfo(molten_core duration=30 )
- SpellAddBuff(molten_core molten_core=1)
-Define(rain_of_fire 5740)
- SpellInfo(rain_of_fire duration=6 )
- SpellAddBuff(rain_of_fire rain_of_fire=1)
-Define(rain_of_fire_aftermath 104232)
-Define(seed_of_corruption 27243)
- SpellInfo(seed_of_corruption duration=18 tick=3 haste=spell )
- SpellAddTargetDebuff(seed_of_corruption seed_of_corruption=1)
-Define(service_felguard 111898)
- SpellInfo(service_felguard cd=120 )
-Define(service_felhunter 111897)
- SpellInfo(service_felhunter cd=120 )
-Define(shadow_bolt 686)
- SpellInfo(shadow_bolt demonicfury=40 stance=0)
-Define(shadowburn 17877)
- SpellInfo(shadowburn burningembers=10 )
-Define(shadowflame 47960)
- SpellInfo(shadowflame duration=6 tick=1 haste=spell )
- SpellAddTargetDebuff(shadowflame shadowflame=1)
-Define(skull_banner 114207)
- SpellInfo(skull_banner duration=10 cd=180 )
-Define(soul_fire 6353)
- SpellAddBuff(soul_fire molten_core=-1)
-Define(soul_swap 86121)
-Define(soulburn 74434)
- SpellInfo(soulburn duration=30 shards=1 cd=1 )
- SpellAddBuff(soulburn soulburn=1)
-Define(soulburn_seed_of_corruption 86664)
-Define(summon_doomguard 18540)
- SpellInfo(summon_doomguard cd=600 )
-Define(summon_felguard 30146)
- SpellInfo(summon_felguard demonicfury=0 )
-Define(summon_felhunter 691)
- SpellInfo(summon_felhunter demonicfury=0 )
-Define(summon_infernal 1122)
- SpellInfo(summon_infernal cd=600 )
-Define(touch_of_chaos 103964)
- SpellInfo(touch_of_chaos demonicfury=40 stance=1)
-Define(unstable_affliction 30108)
- SpellInfo(unstable_affliction duration=14 tick=2 haste=spell )
- SpellAddTargetDebuff(unstable_affliction unstable_affliction=1)
-Define(void_ray 115422)
- SpellInfo(void_ray demonicfury=40 )
-Define(wrathstorm 115831)
- SpellInfo(wrathstorm duration=6 energy=60 cd=45 )
- SpellAddBuff(wrathstorm wrathstorm=1)
-Define(grimoire_of_sacrifice_talent 15)
-Define(grimoire_of_service_talent 14)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
- if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
- }
- if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
- if BuffPresent(soulburn) Spell(soul_swap)
- if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 +TickTime(haunt) and SoulShards() and target.HealthPercent() <=20 Spell(haunt)
- if BuffExpires(dark_soul_misery) and BuffExpires(bloodlust any=1) and ManaPercent() <10 and target.HealthPercent() <=20 Spell(life_tap)
- if target.HealthPercent() <=20 Spell(drain_soul)
- if target.HealthPercent() <=20 Spell(life_tap)
- if target.DebuffRemains(agony) <GCD() and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
- if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 +TickTime(haunt) and {SoulShards() >2 or SpellCooldown(dark_soul_misery) >35 or {SoulShards() >1 and SpellCooldown(dark_soul_misery) <CastTime(haunt) } } and SoulShards() Spell(haunt)
- if target.DebuffRemains(corruption) <GCD() and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
- if target.DebuffRemains(unstable_affliction) <GCD() +CastTime(unstable_affliction) and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
- if target.TicksRemain(agony) <=2 and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
- if target.TicksRemain(corruption) <=2 and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
- if {target.DebuffRemains(unstable_affliction) -CastTime(unstable_affliction) } /{BuffDuration(unstable_affliction) /Ticks(unstable_affliction) } <=2 and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
- if SpellPower() >LastSpellSpellPower(agony) and target.TicksRemain(agony) <Ticks(agony) /2 and target.DebuffRemains(agony) +2 <SpellCooldown(dark_soul_misery) Spell(agony)
- if SpellPower() >LastSpellSpellPower(corruption) and target.TicksRemain(corruption) <Ticks(corruption) /2 and target.DebuffRemains(corruption) <SpellCooldown(dark_soul_misery) Spell(corruption)
- if SpellPower() >LastSpellSpellPower(unstable_affliction) and target.TicksRemain(unstable_affliction) <Ticks(unstable_affliction) /2 and target.DebuffRemains(unstable_affliction) <SpellCooldown(dark_soul_misery) Spell(unstable_affliction)
- if BuffExpires(dark_soul_misery) and BuffExpires(bloodlust any=1) and ManaPercent() <50 Spell(life_tap)
- Spell(malefic_grasp)
- Spell(life_tap)
-}
-AddIcon mastery=1 help=offgcd
-{
- if not InCombat()
- {
- if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
- }
- if BuffPresent(dark_soul_misery) and {target.TicksRemain(agony) <=Ticks(agony) /2 or target.TicksRemain(corruption) <=Ticks(corruption) /2 or target.TicksRemain(unstable_affliction) <=Ticks(unstable_affliction) /2 } and SoulShards() Spell(soulburn)
- if {target.TicksRemain(unstable_affliction) <=1 or target.TicksRemain(corruption) <=1 or target.TicksRemain(agony) <=1 } and SoulShards() and target.HealthPercent() <=20 Spell(soulburn)
- if SpellPower() >LastSpellSpellPower(unstable_affliction) and target.TicksRemain(unstable_affliction) <=Ticks(unstable_affliction) /2 and SoulShards() and target.HealthPercent() <=20 Spell(soulburn)
-}
-AddIcon mastery=1 help=moving
-{
- if ManaPercent() <80 and ManaPercent() <target.HealthPercent() Spell(life_tap)
- Spell(fel_flame)
-}
-AddIcon mastery=1 help=aoe
-{
-
- if BuffExpires(soulburn) and not target.DebuffPresent(soulburn_seed_of_corruption) and not InFlightToTarget(soulburn_seed_of_corruption) and SoulShards() Spell(soulburn)
- if BuffPresent(soulburn) and not target.DebuffPresent(agony) and not target.DebuffPresent(corruption) Spell(soul_swap)
- if BuffPresent(soulburn) and target.DebuffPresent(corruption) and not target.DebuffPresent(agony) Spell(soul_swap)
- if {BuffExpires(soulburn) and not InFlightToTarget(seed_of_corruption) and not target.DebuffPresent(seed_of_corruption) } or {BuffPresent(soulburn) and not target.DebuffPresent(soulburn_seed_of_corruption) and not InFlightToTarget(soulburn_seed_of_corruption) } Spell(seed_of_corruption)
- if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <CastTime(haunt) +1 and SoulShards() Spell(haunt)
- if ManaPercent() <70 Spell(life_tap)
- if not InFlightToTarget(fel_flame) Spell(fel_flame)
-
-}
-AddIcon mastery=1 help=cd
-{
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(blood_fury)
- Spell(dark_soul_misery)
- Spell(summon_doomguard)
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
- if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felguard) Spell(summon_felguard)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felguard)
- }
- if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felguard)
- if BuffPresent(metamorphosis) and target.DebuffPresent(corruption) and target.DebuffRemains(corruption) <1.5 Spell(touch_of_chaos)
- if BuffPresent(metamorphosis) and {target.TicksRemain(doom) <=1 or {target.TicksRemain(doom) +1 <Ticks(doom) and BuffPresent(dark_soul_knowledge) } } and target.DeadIn() >=30 Spell(doom)
- if BuffPresent(metamorphosis) and target.DebuffPresent(corruption) and target.DebuffRemains(corruption) <20 Spell(touch_of_chaos)
- if BuffPresent(metamorphosis) and BuffExpires(dark_soul_knowledge) and DemonicFury() <=650 and target.DeadIn() >30 if Stance(1) cancel.Texture(Spell_shadow_demonform)
- if BuffPresent(metamorphosis) and BuffStacks(molten_core) and {BuffRemains(dark_soul_knowledge) <CastTime(shadow_bolt) or BuffRemains(dark_soul_knowledge) >CastTime(soul_fire) } Spell(soul_fire)
- if BuffPresent(metamorphosis) Spell(touch_of_chaos)
- if not target.DebuffPresent(corruption) and target.DeadIn() >=6 Spell(corruption)
- if not InFlightToTarget(hand_of_guldan) and target.DebuffRemains(shadowflame) <1 +CastTime(shadow_bolt) Spell(hand_of_guldan)
- if BuffStacks(molten_core) and {BuffRemains(dark_soul_knowledge) <CastTime(shadow_bolt) or BuffRemains(dark_soul_knowledge) >CastTime(soul_fire) } Spell(soul_fire)
- if ManaPercent() <60 Spell(life_tap)
- Spell(shadow_bolt)
- Spell(life_tap)
-}
-AddIcon mastery=2 help=offgcd
-{
- if not InCombat()
- {
- if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
- }
- Spell(melee)
- Spell(felstorm)
- Spell(wrathstorm)
- if {BuffPresent(dark_soul_knowledge) and DemonicFury() /32 >BuffRemains(dark_soul_knowledge) } or target.DebuffRemains(corruption) <5 or not target.DebuffPresent(doom) or DemonicFury() >=950 or DemonicFury() /32 >target.DeadIn() unless Stance(1) Spell(metamorphosis)
-}
-AddIcon mastery=2 help=moving
-{
- Spell(fel_flame)
-}
-AddIcon mastery=2 help=aoe
-{
-
- if BuffPresent(metamorphosis) and target.DebuffRemains(corruption) >10 and DemonicFury() <=650 and BuffExpires(dark_soul_knowledge) and not target.DebuffPresent(immolation_aura) if Stance(1) cancel.Texture(Spell_shadow_demonform)
- if BuffPresent(metamorphosis) Spell(immolation_aura)
- if BuffPresent(metamorphosis) and target.DebuffRemains(corruption) <10 Spell(void_ray)
- if BuffPresent(metamorphosis) and {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <TickTime(doom) or {target.TicksRemain(doom) +1 <Ticks(doom) and BuffPresent(dark_soul_knowledge) } } and target.DeadIn() >=30 Spell(doom)
- if BuffPresent(metamorphosis) Spell(void_ray)
- if not target.DebuffPresent(corruption) and target.DeadIn() >30 Spell(corruption)
- Spell(hand_of_guldan)
- if target.DebuffRemains(corruption) <10 or BuffPresent(dark_soul_knowledge) or DemonicFury() >=950 or DemonicFury() /32 >target.DeadIn() unless Stance(1) Spell(metamorphosis)
- Spell(hellfire)
- Spell(life_tap)
-
-}
-AddIcon mastery=2 help=cd
-{
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(blood_fury)
- Spell(dark_soul_knowledge)
- Spell(summon_doomguard)
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- if not BuffPresent(spell_power_multiplier any=1) Spell(dark_intent)
- if not TalentPoints(grimoire_of_sacrifice_talent) or BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
- }
- if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
- if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
- if BurningEmbers() if target.HealthPercent(less 20) Spell(shadowburn)
- if {target.TicksRemain(immolate_debuff) <Ticks(immolate-debuff) /2 or target.DebuffExpires(immolate_debuff) } and target.DeadIn() >=5 Spell(immolate)
- if Charges(conflagrate) ==2 Spell(conflagrate)
- if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
- if BurningEmbers() and {BuffStacks(backdraft) <3 or Level() <86 } and {{BurningEmbers() / 10} >3.5 or BuffRemains(dark_soul_instability) >CastTime(chaos_bolt) or BuffRemains(skull_banner) >CastTime(chaos_bolt) } Spell(chaos_bolt)
- Spell(conflagrate)
- Spell(incinerate)
-}
-AddIcon mastery=3 help=offgcd
-{
- if not InCombat()
- {
- if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
- }
-}
-AddIcon mastery=3 help=aoe
-{
-
- if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
- if {BurningEmbers() / 10} >=3.5 and BurningEmbers() and target.HealthPercent() <=20 focus.Spell(havoc)
- if {BurningEmbers() / 10} >=3.5 and BurningEmbers() and BuffStacks(havoc) >=1 if target.HealthPercent(less 20) Spell(shadowburn)
- if BurningEmbers() and BuffExpires(fire_and_brimstone) Spell(fire_and_brimstone)
- if BuffPresent(fire_and_brimstone) and not target.DebuffPresent(immolate_debuff) Spell(immolate)
- if BuffPresent(fire_and_brimstone) Spell(conflagrate)
- if BuffPresent(fire_and_brimstone) Spell(incinerate)
- if not target.DebuffPresent(immolate_debuff) Spell(immolate)
-
- if not target.DebuffPresent(rain_of_fire_aftermath) and not InFlightToTarget(rain_of_fire_aftermath) Spell(rain_of_fire_aftermath)
- focus.Spell(havoc)
-}
-AddIcon mastery=3 help=cd
-{
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
- Spell(blood_fury)
- Spell(dark_soul_instability)
- Spell(summon_doomguard)
-}
-]]
-
- OvaleScripts:RegisterScript("WARLOCK", name, desc, code)
-end
diff --git a/scripts/OvaleWarrior.lua b/scripts/OvaleWarrior.lua
deleted file mode 100644
index 7754a9f..0000000
--- a/scripts/OvaleWarrior.lua
+++ /dev/null
@@ -1,284 +0,0 @@
-local _, Ovale = ...
-local OvaleScripts = Ovale.OvaleScripts
-
-do
- local name = "Ovale"
- local desc = "[5.2] Ovale: Arms, Fury, Protection"
- local code = [[
-Define(avatar 107574)
- SpellInfo(avatar duration=24 cd=180 )
- SpellAddBuff(avatar avatar=1)
-Define(battle_shout 6673)
- SpellInfo(battle_shout duration=300 cd=60 )
- SpellAddBuff(battle_shout battle_shout=1)
-Define(battle_stance 2457)
- SpellInfo(battle_stance cd=3 )
-Define(berserker_rage 18499)
- SpellInfo(berserker_rage duration=6 cd=30 )
- SpellAddBuff(berserker_rage berserker_rage=1)
-Define(bladestorm 46924)
- SpellInfo(bladestorm duration=6 cd=90 )
- SpellAddBuff(bladestorm bladestorm=1)
-Define(bloodbath 113344)
- SpellInfo(bloodbath duration=6 tick=1 )
- SpellAddTargetDebuff(bloodbath bloodbath=1)
-Define(bloodsurge 46916)
- SpellInfo(bloodsurge duration=10)
-Define(bloodthirst 23881)
- SpellInfo(bloodthirst rage=-10 cd=4.5 )
-Define(cleave 845)
- SpellInfo(cleave rage=30 cd=1.5 )
-Define(colossus_smash 86346)
- SpellInfo(colossus_smash duration=6.5 cd=20 )
- SpellAddTargetDebuff(colossus_smash colossus_smash=1)
-Define(defensive_stance 71)
- SpellInfo(defensive_stance cd=3 )
-Define(demoralizing_shout 1160)
- SpellInfo(demoralizing_shout duration=10 cd=60 )
- SpellAddTargetDebuff(demoralizing_shout demoralizing_shout=1)
-Define(devastate 20243)
-Define(dragon_roar 118000)
- SpellInfo(dragon_roar cd=60 )
-Define(enrage 5229)
- SpellInfo(enrage duration=10 rage=-20 cd=60 )
- SpellAddBuff(enrage enrage=1)
-Define(execute 5308)
- SpellInfo(execute rage=30 )
-Define(heroic_leap 6544)
- SpellInfo(heroic_leap duration=1 cd=45 )
- AddCheckBox(heroic_leap_check SpellName(heroic_leap))
-Define(heroic_strike 78)
- SpellInfo(heroic_strike rage=30 cd=1.5 )
-Define(heroic_throw 57755)
- SpellInfo(heroic_throw cd=30 )
-Define(impending_victory 103840)
- SpellInfo(impending_victory rage=10 cd=30 )
-Define(last_stand 12975)
- SpellInfo(last_stand duration=20 cd=180 )
- SpellAddBuff(last_stand last_stand=1)
-Define(meat_cleaver 85739)
- SpellInfo(meat_cleaver duration=10 )
- SpellAddBuff(meat_cleaver meat_cleaver=1)
-Define(mortal_strike 12294)
- SpellInfo(mortal_strike duration=10 rage=-10 cd=6 )
- SpellAddTargetDebuff(mortal_strike mortal_wounds=1)
-Define(overpower 7384)
- SpellInfo(overpower rage=10 )
- SpellAddBuff(overpower taste_for_blood=-1)
-Define(pummel 6552)
- SpellInfo(pummel duration=4 cd=15 )
-Define(raging_blow 85288)
- SpellInfo(raging_blow rage=10 )
- SpellAddBuff(raging_blow raging_blow_aura=-1)
-Define(raging_blow_aura 131116)
- SpellInfo(raging_blow_aura duration=12 )
- SpellAddBuff(raging_blow_aura raging_blow_aura=1)
-Define(recklessness 1719)
- SpellInfo(recklessness duration=12 cd=180 )
- SpellAddBuff(recklessness recklessness=1)
-Define(revenge 6572)
- SpellInfo(revenge rage=-15 cd=9 )
-Define(shield_barrier 112048)
- SpellInfo(shield_barrier duration=6 rage=20 cd=1.5 )
- SpellAddBuff(shield_barrier shield_barrier=1)
-Define(shield_block 2565)
- SpellInfo(shield_block rage=60 cd=1.5 )
- SpellAddTargetDebuff(shield_block shield_block_aura=1)
-Define(shield_block_aura 132404)
- SpellInfo(shield_block_aura duration=6 )
- SpellAddBuff(shield_block_aura shield_block_aura=1)
-Define(shield_slam 23922)
- SpellInfo(shield_slam rage=-20 cd=6 )
-Define(shield_wall 871)
- SpellInfo(shield_wall duration=12 cd=300 )
- SpellAddBuff(shield_wall shield_wall=1)
-Define(shockwave 46968)
- SpellInfo(shockwave cd=40 )
- SpellAddBuff(shockwave shockwave=1)
-Define(skull_banner 114207)
- SpellInfo(skull_banner duration=10 cd=180 )
-Define(slam 1464)
- SpellInfo(slam rage=20 )
-Define(storm_bolt 107570)
- SpellInfo(storm_bolt cd=30 )
- SpellAddBuff(storm_bolt storm_bolt=1)
-Define(sudden_execute 139958)
- SpellInfo(sudden_execute duration=10 )
- SpellAddBuff(sudden_execute sudden_execute=1)
-Define(sunder_armor 7386)
- SpellInfo(sunder_armor rage=15 )
- SpellAddTargetDebuff(sunder_armor weakened_armor=1)
- AddCheckBox(sunder_armor_check SpellName(sunder_armor))
-Define(sweeping_strikes 12328)
- SpellInfo(sweeping_strikes duration=10 rage=30 cd=10 )
- SpellAddBuff(sweeping_strikes sweeping_strikes=1)
-Define(taste_for_blood 56636)
-Define(thunder_clap 6343)
- SpellInfo(thunder_clap rage=20 cd=6 )
- SpellAddTargetDebuff(thunder_clap weakened_blows=1)
-Define(ultimatum 122510)
- SpellInfo(ultimatum duration=10 )
- SpellAddBuff(ultimatum ultimatum=1)
-Define(weakened_armor 113746)
- SpellInfo(weakened_armor duration=30 )
- SpellAddBuff(weakened_armor weakened_armor=1)
-Define(weakened_blows 115798)
- SpellInfo(weakened_blows duration=30 )
- SpellAddBuff(weakened_blows weakened_blows=1)
-Define(whirlwind 1680)
- SpellInfo(whirlwind rage=30 )
-Define(wild_strike 100130)
- SpellInfo(wild_strike rage=30 )
- SpellAddBuff(wild_strike bloodsurge=-1)
- SpellAddTargetDebuff(wild_strike wild_strike=1)
-Define(avatar_talent 16)
-Define(bloodbath_talent 17)
-Define(dragon_roar_talent 12)
-Define(impending_victory_talent 6)
-Define(shockwave_talent 11)
-Define(storm_bolt_talent 18)
-AddCheckBox(showwait L(showwait) default)
-AddIcon mastery=1 help=main
-{
- if not InCombat()
- {
- unless Stance(1) Spell(battle_stance)
- }
- if target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 if CheckBoxOn(sunder_armor_check) Spell(sunder_armor)
- Spell(mortal_strike)
- if TalentPoints(dragon_roar_talent) and TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) and target.DebuffExpires(colossus_smash) and target.HealthPercent() >=20 Spell(dragon_roar)
- if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash) Spell(storm_bolt)
- if target.DebuffRemains(colossus_smash) <1 Spell(colossus_smash)
- if target.DebuffPresent(colossus_smash) or BuffPresent(recklessness) or Rage() >=Rage() -25 if target.HealthPercent(less 20) Spell(execute)
- if TalentPoints(dragon_roar_talent) and {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) and target.HealthPercent() >=20 } or {target.DebuffExpires(colossus_smash) and target.HealthPercent() <20 } Spell(dragon_roar)
- if target.DebuffPresent(colossus_smash) and {target.DebuffRemains(colossus_smash) <1 or BuffPresent(recklessness) } and target.HealthPercent() >=20 Spell(slam)
- if BuffStacks(taste_for_blood) >=3 and target.HealthPercent() >=20 Spell(overpower usable=1)
- if target.DebuffPresent(colossus_smash) and target.DebuffRemains(colossus_smash) <2.5 and target.HealthPercent() >=20 Spell(slam)
- if BuffExpires(sudden_execute) if target.HealthPercent(less 20) Spell(execute)
- if target.HealthPercent() >=20 or BuffPresent(sudden_execute) Spell(overpower usable=1)
- if Rage() >=40 and target.HealthPercent() >=20 Spell(slam)
- Spell(battle_shout)
- Spell(heroic_throw)
-}
-AddIcon mastery=1 help=offgcd
-{
- if target.IsInterruptible() Spell(pummel)
- if TalentPoints(bloodbath_talent) and {target.DeadIn() <=18 or BuffPresent(recklessness) or target.DeadIn() >=75 } Spell(bloodbath)
- if BuffExpires(enrage) and Rage() <=Rage() -10 Spell(berserker_rage)
- if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
- if {target.DebuffPresent(colossus_smash) and Rage() >=Rage() -40 and target.HealthPercent() >=20 } or Rage() >=Rage() -15 Spell(heroic_strike)
-}
-AddIcon mastery=1 help=aoe
-{
-
- Spell(dragon_roar)
- Spell(shockwave)
- Spell(whirlwind)
- Spell(sweeping_strikes)
- if Rage() >=90 Spell(cleave)
- Spell(bloodthirst)
-
-}
-AddIcon mastery=1 help=cd
-{
- if target.DeadIn() <=18 or {{target.DeadIn() >=186 or {target.HealthPercent() <20 and {target.DebuffRemains(colossus_smash) >=5 or SpellCooldown(colossus_smash) <=1.5 } } } and {not TalentPoints(bloodbath_talent) or not SpellCooldown(bloodbath) } } Spell(recklessness)
- if TalentPoints(avatar_talent) and {BuffPresent(recklessness) or target.DeadIn() <=25 } Spell(avatar)
- if BuffPresent(recklessness) Spell(skull_banner)
- if TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
-}
-AddIcon mastery=2 help=main
-{
- if not InCombat()
- {
- unless Stance(1) Spell(battle_stance)
- }
- if target.DebuffStacks(weakened_armor any=1) <3 or target.DebuffRemains(weakened_armor any=1) <3 if CheckBoxOn(sunder_armor_check) Spell(sunder_armor)
- if BuffStacks(raging_blow_aura) ==2 and target.DebuffPresent(colossus_smash) and target.HealthPercent() >=20 Spell(raging_blow)
- if not {target.HealthPercent() <20 and target.DebuffPresent(colossus_smash) and Rage() >=30 } Spell(bloodthirst)
- if BuffStacks(bloodsurge) and target.HealthPercent() >=20 and SpellCooldown(bloodthirst) <=1 Spell(wild_strike)
- if not {target.HealthPercent() <20 and target.DebuffPresent(colossus_smash) and Rage() >=30 } and SpellCooldown(bloodthirst) <=1 and SpellCooldown(bloodthirst) if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
- if TalentPoints(dragon_roar_talent) and {not target.DebuffPresent(colossus_smash) and {BuffPresent(bloodbath) or not TalentPoints(bloodbath_talent) } } Spell(dragon_roar)
- Spell(colossus_smash)
- if BuffPresent(enrage) or target.DebuffPresent(colossus_smash) or Rage() >90 or target.DeadIn() <12 or BuffPresent(recklessness) if target.HealthPercent(less 20) Spell(execute)
- if TalentPoints(storm_bolt_talent) Spell(storm_bolt)
- if BuffStacks(raging_blow_aura) ==2 or {BuffPresent(raging_blow_aura) and {target.DebuffPresent(colossus_smash) or SpellCooldown(colossus_smash) >=3 or {SpellCooldown(bloodthirst) >=1 and BuffRemains(raging_blow_aura) <=3 } } } Spell(raging_blow)
- if BuffStacks(bloodsurge) Spell(wild_strike)
- if TalentPoints(shockwave_talent) Spell(shockwave)
- if target.DebuffExpires(colossus_smash) Spell(heroic_throw)
- if Rage() <70 and not target.DebuffPresent(colossus_smash) Spell(battle_shout)
- if target.DebuffPresent(colossus_smash) and target.HealthPercent() >=20 Spell(wild_strike)
- if TalentPoints(impending_victory_talent) and target.HealthPercent() >=20 Spell(impending_victory)
- if SpellCooldown(colossus_smash) >=2 and Rage() >=80 and target.HealthPercent() >=20 Spell(wild_strike)
- if Rage() <70 Spell(battle_shout)
-}
-AddIcon mastery=2 help=offgcd
-{
- if target.IsInterruptible() Spell(pummel)
- if TalentPoints(bloodbath_talent) and {SpellCooldown(colossus_smash) <2 or target.DebuffRemains(colossus_smash) >=5 or target.DeadIn() <=20 } Spell(bloodbath)
- if not {BuffStacks(enrage) or {BuffStacks(raging_blow_aura) ==2 and target.HealthPercent() >=20 } } or {BuffRemains(recklessness) >=10 and not BuffStacks(raging_blow_aura) } Spell(berserker_rage)
- if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
- if {{target.DebuffPresent(colossus_smash) and Rage() >=40 } and target.HealthPercent() >=20 } or Rage() >=110 Spell(heroic_strike)
-}
-AddIcon mastery=2 help=aoe
-{
-
- Spell(dragon_roar)
- Spell(shockwave)
- if BuffStacks(meat_cleaver) and BuffStacks(raging_blow_aura) Spell(raging_blow)
- Spell(whirlwind)
- if Rage() >=90 Spell(cleave)
- Spell(bloodthirst)
-
-}
-AddIcon mastery=2 help=cd
-{
- if {TalentPoints(avatar_talent) and {SpellCooldown(colossus_smash) <2 or target.DebuffRemains(colossus_smash) >=5 } } or {TalentPoints(bloodbath_talent) and {BuffPresent(bloodbath) and {target.DeadIn() >192 or target.HealthPercent() <20 } } } or target.DeadIn() <=12 Spell(recklessness)
- if BuffPresent(recklessness) and TalentPoints(avatar_talent) Spell(avatar)
- if BuffPresent(recklessness) Spell(skull_banner)
- if {not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash) } or {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) } { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
-}
-AddIcon mastery=3 help=main
-{
- if not InCombat()
- {
- unless Stance(2) Spell(defensive_stance)
- }
- if Rage() <80 Spell(shield_slam)
- if Rage() <85 Spell(revenge)
- if Rage() <90 Spell(battle_shout)
- if target.DebuffExpires(weakened_blows) Spell(thunder_clap)
- if target.HealthPercent(less 20) Spell(execute)
- Spell(devastate)
-}
-AddIcon mastery=3 help=offgcd
-{
- if target.IsInterruptible() Spell(pummel)
- if {BuffPresent(ultimatum) and target.HealthPercent() >=20 } Spell(heroic_strike)
- if Rage() <90 Spell(berserker_rage)
- if BuffExpires(shield_block_aura) Spell(shield_block)
- if BuffExpires(shield_barrier) and Rage() >80 Spell(shield_barrier)
- Spell(demoralizing_shout)
-}
-AddIcon mastery=3 help=aoe
-{
-
- Spell(dragon_roar)
- Spell(shockwave)
- Spell(thunder_clap)
- if BuffPresent(ultimatum) Spell(cleave)
- if Rage() >=90 Spell(cleave)
- Spell(shield_slam)
-
-}
-AddIcon mastery=3 help=cd
-{
- if Health() <130000 Spell(last_stand)
- if TalentPoints(avatar_talent) Spell(avatar)
- Spell(recklessness)
- if BuffExpires(shield_block_aura) Spell(shield_wall)
- { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
-}
-]]
-
- OvaleScripts:RegisterScript("WARRIOR", name, desc, code)
-end
diff --git a/scripts/scripts.xml b/scripts/scripts.xml
deleted file mode 100644
index fe6a028..0000000
--- a/scripts/scripts.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/ ..\FrameXML\UI.xsd">
- <Script file="OvaleDeathKnight.lua" />
- <Script file="OvaleDruid.lua" />
- <Script file="OvaleHunter.lua" />
- <Script file="OvaleMage.lua" />
- <Script file="OvaleMonk.lua" />
- <Script file="OvalePaladin.lua" />
- <Script file="OvalePriest.lua" />
- <Script file="OvaleRogue.lua" />
- <Script file="OvaleShaman.lua" />
- <Script file="OvaleWarlock.lua" />
- <Script file="OvaleWarrior.lua" />
-</Ui>