Quantcast

Reorganize file layout a bit to allow for class-specific state to be kept.

Johnny C. Lam [04-06-14 - 18:46]
Reorganize file layout a bit to allow for class-specific state to be kept.

Also rename a few XML files to "files.xml" when listing/loading all of the
files in a directory.

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@1269 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
Ovale.toc
class/DeathKnight.lua
class/Druid.lua
class/Hunter.lua
class/Mage.lua
class/Monk.lua
class/Paladin.lua
class/Priest.lua
class/Rogue.lua
class/Shaman.lua
class/Warlock.lua
class/Warrior.lua
class/files.xml
compiler.pl
conditions/conditions.xml
conditions/files.xml
locales/files.xml
locales/locales.xml
scripts/OvaleDeathKnight.lua
scripts/OvaleDruid.lua
scripts/OvaleHunter.lua
scripts/OvaleMage.lua
scripts/OvaleMonk.lua
scripts/OvalePaladin.lua
scripts/OvalePriest.lua
scripts/OvaleRogue.lua
scripts/OvaleShaman.lua
scripts/OvaleWarlock.lua
scripts/OvaleWarrior.lua
scripts/scripts.xml
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>