Quantcast

update with last simulationcraft scripts

Sidoine De Wispelaere [12-02-12 - 09:45]
update with last simulationcraft scripts

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@654 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
OvaleBestAction.lua
OvaleCondition.lua
OvaleState.lua
defaut/Chaman.lua
defaut/Chasseur.lua
defaut/Chevalier.lua
defaut/Demoniste.lua
defaut/Druide.lua
defaut/Guerrier.lua
defaut/Mage.lua
defaut/Moine.lua
defaut/Paladin.lua
defaut/Pretre.lua
defaut/Voleur.lua
diff --git a/OvaleBestAction.lua b/OvaleBestAction.lua
index ee9ff07..705001b 100644
--- a/OvaleBestAction.lua
+++ b/OvaleBestAction.lua
@@ -101,7 +101,7 @@ function OvaleBestAction:GetActionInfo(element)

 		local si = OvaleData:GetSpellInfo(spellId)
 		if si then
-			if si.stance and si.stance > 0 and OvaleAura.stance ~= si.stance then
+			if si.stance and OvaleAura.stance ~= si.stance then
 				return nil
 			end

diff --git a/OvaleCondition.lua b/OvaleCondition.lua
index 6cb8e7e..0f03eca 100644
--- a/OvaleCondition.lua
+++ b/OvaleCondition.lua
@@ -2313,7 +2313,7 @@ OvaleCondition.conditions.spellcooldown = function(condition)
 		return 0, nil, actionCooldownDuration, actionCooldownStart, -1
 	end
 end
-OvaleCondition.spellbookConditions.spellcooldown = true
+-- OvaleCondition.spellbookConditions.spellcooldown = true / may be a sharedcd

 --- Get data for the given spell defined by SpellInfo(...)
 -- @name SpellData
diff --git a/OvaleState.lua b/OvaleState.lua
index 988100a..41e49a3 100644
--- a/OvaleState.lua
+++ b/OvaleState.lua
@@ -340,7 +340,7 @@ function OvaleState:AddSpellToStack(spellId, startCast, endCast, nextCast, nocd,
 										Ovale:Log("Aura "..auraSpellId.." is refreshed")
 										newAura.stacks = previousAura.stacks
 									else -- if stacks > 0
-										Ovale:Log("Aura "..auraSpellId.." gain stacks")
+										Ovale:Log("Aura "..auraSpellId.." gain stacks (ending was " .. tostring(newAura.ending)..")")
 										newAura.stacks = previousAura.stacks + stacks
 									end
 									newAura.start = previousAura.start
@@ -353,6 +353,7 @@ function OvaleState:AddSpellToStack(spellId, startCast, endCast, nextCast, nocd,
 									else
 										newAura.ending = endCast + duration
 									end
+									Ovale:Log("Aura "..auraSpellId.." ending is now "..newAura.ending)
 								elseif stacks < 0 then
 									Ovale:Log("Aura "..auraSpellId.." loses stacks")
 									newAura.stacks = previousAura.stacks + stacks
diff --git a/defaut/Chaman.lua b/defaut/Chaman.lua
index 03cf25f..5ffa7d4 100644
--- a/defaut/Chaman.lua
+++ b/defaut/Chaman.lua
@@ -1,5 +1,5 @@
 Ovale.defaut["SHAMAN"] = [[Define(ancestral_swiftness 16188)
-  SpellInfo(ancestral_swiftness cd=60 )
+  SpellInfo(ancestral_swiftness cd=90 )
   SpellAddBuff(ancestral_swiftness ancestral_swiftness=1)
 Define(ascendance 114049)
   SpellInfo(ascendance cd=180 )
@@ -90,10 +90,10 @@ AddIcon mastery=1 help=main
 	}

 	if TalentPoints(unleashed_fury_talent) and not BuffPresent(ascendance) Spell(unleash_elements)
-	if not BuffPresent(ascendance) and {not target.DebuffPresent(flame_shock) or target.TicksRemain(flame_shock) <2 or {{BuffPresent(bloodlust any=1) or BuffPresent(elemental_mastery) } and target.TicksRemain(flame_shock) <3 } } Spell(flame_shock)
 	if target.DebuffRemains(flame_shock) >CastTime(lava_burst) and {BuffPresent(ascendance) or SpellCooldown(lava_burst) } Spell(lava_burst)
-	if TalentPoints(elemental_blast_talent) and not BuffPresent(ascendance) Spell(elemental_blast)
-	if BuffStacks(lightning_shield) ==0 Spell(earth_shock)
+	if target.TicksRemain(flame_shock) <3 and {target.TicksRemain(flame_shock) <2 or BuffPresent(bloodlust any=1) or BuffPresent(elemental_mastery) } 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 SpellCooldown(fire_elemental_totem) >15 and not TotemPresent(fire) Spell(searing_totem)
 	Spell(lightning_bolt)
@@ -102,9 +102,6 @@ AddIcon mastery=1 help=main
 AddIcon mastery=1 help=offgcd
 {
 	if target.IsInterruptible() Spell(wind_shear)
-
-	if TalentPoints(ancestral_swiftness_talent) and not BuffPresent(ascendance) Spell(ancestral_swiftness)
-
 }
 AddIcon mastery=1 help=moving
 {
@@ -118,8 +115,8 @@ 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 not target.DebuffPresent(flame_shock) and Enemies() <3 Spell(flame_shock)
 	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)
@@ -136,6 +133,7 @@ AddIcon mastery=1 help=cd
 	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 target.DebuffRemains(flame_shock) >0 and {target.DeadIn() <20 or BuffPresent(bloodlust any=1) or TimeInCombat() >=180 } and SpellCooldown(lava_burst) >0 Spell(ascendance)
+	if TalentPoints(ancestral_swiftness_talent) and not BuffPresent(ascendance) Spell(ancestral_swiftness)
 	if not TotemPresent(earth) and SpellCooldown(fire_elemental_totem) >=50 Spell(earth_elemental_totem)
 	Spell(spiritwalkers_grace)

@@ -157,10 +155,10 @@ AddIcon mastery=2 help=main
 	Spell(stormstrike)
 	if BuffPresent(unleash_flame) and not target.DebuffPresent(flame_shock) Spell(flame_shock)
 	Spell(lava_lash)
+	if BuffPresent(unleash_flame) 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)

@@ -168,9 +166,6 @@ AddIcon mastery=2 help=main
 AddIcon mastery=2 help=offgcd
 {
 	if target.IsInterruptible() Spell(wind_shear)
-
-	if TalentPoints(ancestral_swiftness_talent) and BuffStacks(maelstrom_weapon) <2 Spell(ancestral_swiftness)
-
 }
 AddIcon mastery=2 help=aoe
 {
@@ -199,6 +194,7 @@ AddIcon mastery=2 help=cd
 	if TalentPoints(elemental_mastery_talent) Spell(elemental_mastery)
 	if not TotemPresent(fire) and {BuffPresent(bloodlust any=1) or BuffPresent(elemental_mastery) or target.DeadIn() <=0 +10 or {TalentPoints(elemental_mastery_talent) and {SpellCooldown(elemental_mastery) ==0 or SpellCooldown(elemental_mastery) >80 } or TimeInCombat() >=60 } } Spell(fire_elemental_totem)
 	if SpellCooldown(strike) >=3 Spell(ascendance)
+	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)
diff --git a/defaut/Chasseur.lua b/defaut/Chasseur.lua
index 3d3f528..00fc2ca 100644
--- a/defaut/Chasseur.lua
+++ b/defaut/Chasseur.lua
@@ -3,9 +3,6 @@ Define(aimed_shot 19434)
   SpellInfo(aimed_shot focus=50 )
 Define(arcane_shot 3044)
   SpellInfo(arcane_shot focus=20 )
-Define(aspect_of_the_fox 82661)
-  SpellInfo(aspect_of_the_fox cd=1 )
-  SpellAddBuff(aspect_of_the_fox aspect_of_the_fox=1)
 Define(aspect_of_the_hawk 13165)
   SpellInfo(aspect_of_the_hawk cd=1 )
   SpellAddBuff(aspect_of_the_hawk aspect_of_the_hawk=1)
@@ -54,8 +51,9 @@ Define(kill_command 34026)
 Define(kill_shot 53351)
   SpellInfo(kill_shot cd=10 )
 Define(lock_and_load 56343)
-Define(lynx_rush 120697)
-  SpellInfo(lynx_rush duration=4 cd=90 )
+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)
@@ -86,8 +84,6 @@ Define(steady_shot 56641)
 Define(thrill_of_the_hunt 34720)
   SpellInfo(thrill_of_the_hunt duration=15 )
   SpellAddBuff(thrill_of_the_hunt thrill_of_the_hunt=1)
-Define(trueshot_aura 19506)
-  SpellAddBuff(trueshot_aura trueshot_aura=1)
 AddIcon mastery=1 help=main
 {
 	if not InCombat()
@@ -112,19 +108,12 @@ AddIcon mastery=1 help=main
 }
 AddIcon mastery=1 help=offgcd
 {
-	if not InCombat()
-	{
-		Spell(trueshot_aura)
-	}
 	unless Stance(1) Spell(aspect_of_the_hawk)
 	if Focus() >60 and not BuffPresent(beast_within) Spell(bestial_wrath)
-	Spell(stampede)
+	if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) 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=1 help=moving
-{
-	unless Stance(2) Spell(aspect_of_the_fox)
+	if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
 }
 AddIcon mastery=1 help=aoe
 {
@@ -136,7 +125,6 @@ AddIcon mastery=1 help=cd
 {
 	Spell(blood_fury)
 	if not BuffPresent(rapid_fire) Spell(rapid_fire)
-	if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
 	if BuffPresent(rapid_fire) Spell(readiness)
 }
 AddIcon mastery=2 help=main
@@ -147,34 +135,37 @@ AddIcon mastery=2 help=main
 		unless pet.Present() Spell(call_pet_1)
 	}
 	if SpellUsable(powershot) Spell(powershot)
-	if SpellUsable(barrage) Spell(barrage)
 	if SpellUsable(blink_strike) Spell(blink_strike)
-	if not target.DebuffPresent(serpent_sting_aura) and target.HealthPercent() <=90 Spell(serpent_sting)
-	if target.HealthPercent() <=90 Spell(chimera_shot)
+	if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
 	if SpellUsable(dire_beast) Spell(dire_beast)
-	if PreviousSpell(steady_shot) and BuffRemains(steady_focus) <3 Spell(steady_shot)
+	if target.HealthPercent() >90
+	{
+		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)
+		if BuffStacks(master_marksman_fire) Spell(aimed_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 target.HealthPercent() >90 or BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) Spell(aimed_shot)
-	if {Focus() >=66 or SpellCooldown(chimera_shot) >=5 } and {target.HealthPercent() <90 and not BuffPresent(rapid_fire) and not BuffStacks(bloodlust any=1) } Spell(arcane_shot)
-	if SpellUsable(fervor) and Focus() <=50 Spell(fervor)
+	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()
-	{
-		Spell(trueshot_aura)
-	}
 	unless Stance(1) Spell(aspect_of_the_hawk)
-	if SpellUsable(glaive_toss) Spell(glaive_toss)
-	Spell(stampede)
+	if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
+	if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) Spell(stampede)
 	if SpellUsable(a_murder_of_crows) and not target.DebuffPresent(a_murder_of_crows) Spell(a_murder_of_crows)
-}
-AddIcon mastery=2 help=moving
-{
-	unless Stance(2) Spell(aspect_of_the_fox)
+	if SpellUsable(glaive_toss) Spell(glaive_toss)
 }
 AddIcon mastery=2 help=aoe
 {
@@ -185,9 +176,12 @@ AddIcon mastery=2 help=aoe
 AddIcon mastery=2 help=cd
 {
 	Spell(blood_fury)
-	if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
 	if not BuffPresent(rapid_fire) Spell(rapid_fire)
-	if BuffPresent(rapid_fire) Spell(readiness)
+	if target.HealthPercent() >90
+	{
+		Spell(readiness)
+	}
+	Spell(readiness)
 }
 AddIcon mastery=3 help=main
 {
@@ -214,18 +208,11 @@ AddIcon mastery=3 help=main
 }
 AddIcon mastery=3 help=offgcd
 {
-	if not InCombat()
-	{
-		Spell(trueshot_aura)
-	}
 	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)
-	Spell(stampede)
-}
-AddIcon mastery=3 help=moving
-{
-	unless Stance(2) Spell(aspect_of_the_fox)
+	if BuffPresent(rapid_fire) or BuffStacks(bloodlust any=1) Spell(stampede)
 }
 AddIcon mastery=3 help=aoe
 {
@@ -236,7 +223,6 @@ AddIcon mastery=3 help=aoe
 AddIcon mastery=3 help=cd
 {
 	Spell(blood_fury)
-	if SpellUsable(lynx_rush) and not target.DebuffPresent(lynx_rush) Spell(lynx_rush)
 	if not BuffPresent(rapid_fire) Spell(rapid_fire)
 	if BuffPresent(rapid_fire) Spell(readiness)
 }
diff --git a/defaut/Chevalier.lua b/defaut/Chevalier.lua
index ffc24ab..df57625 100644
--- a/defaut/Chevalier.lua
+++ b/defaut/Chevalier.lua
@@ -1,6 +1,9 @@
 Ovale.defaut["DEATHKNIGHT"] = [[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)
@@ -27,6 +30,9 @@ 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)
@@ -53,8 +59,12 @@ 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)
@@ -72,6 +82,8 @@ 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
 {
@@ -80,38 +92,48 @@ AddIcon mastery=2 help=main
 		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() <=35 or {{target.HealthPercent() -3 *{target.HealthPercent() /target.DeadIn() } } <=35 } Spell(soul_reaper)
+	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 TalentPoints(plague_leech_talent) and not {{BuffStacks(killing_machine) and RunicPower() <10 } or {RuneCount(unholy) ==2 or RuneCount(frost) ==2 or RuneCount(death) ==2 } } Spell(plague_leech)
 	if BuffStacks(rime) Spell(howling_blast)
-	if RunicPower() >=88 Spell(frost_strike)
-	if BuffStacks(killing_machine) Spell(frost_strike)
-	if BuffStacks(killing_machine) and RunicPower() <10 Spell(obliterate)
-	if {RuneCount(unholy) ==2 or RuneCount(frost) ==2 or RuneCount(death) ==2 } Spell(obliterate)
+	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)
-	Spell(frost_strike)
+	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)
-	Spell(plague_strike)
-	Spell(horn_of_winter)
+	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) Spell(blood_tap)
+	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 TimeInCombat() >=10 Spell(blood_fury)
+	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 {RuneCount(frost) >=1 or RuneCount(death) >=1 }  { 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)
-	if target.DeadIn() <=60 and BuffPresent(mogu_power_potion_aura) Spell(empower_rune_weapon)
 	Spell(empower_rune_weapon)
 }
 AddIcon mastery=3 help=main
@@ -122,29 +144,37 @@ AddIcon mastery=3 help=main
 		Spell(horn_of_winter)
 	}
 	if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
-	if target.HealthPercent() <=35 or {{target.HealthPercent() -3 *{target.HealthPercent() /target.DeadIn() } } <=35 } Spell(soul_reaper)
+	if target.HealthPercent() -3 *{target.HealthPercent() /target.DeadIn() } <=35 Spell(soul_reaper)
 	if not target.DebuffPresent(frost_fever) Spell(icy_touch)
 	if not target.DebuffPresent(blood_plague) Spell(plague_strike)
-	if TalentPoints(plague_leech_talent) and {SpellCooldown(outbreak) <1 } Spell(plague_leech)
 	Spell(dark_transformation)
-	if RuneCount(unholy) ==2 and RunicPower() <90 Spell(scourge_strike)
-	if RuneCount(blood) ==2 and RuneCount(frost) ==2 and RunicPower() <90 Spell(festering_strike)
 	if RunicPower() >90 Spell(death_coil)
-	if BuffStacks(sudden_doom) 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)
-	if SpellCooldown(summon_gargoyle) >8 Spell(death_coil)
 	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) Spell(blood_tap)
+	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)
@@ -152,7 +182,6 @@ AddIcon mastery=3 help=cd
 	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)
-	if target.DeadIn() <=60 and BuffPresent(mogu_power_potion_aura) Spell(empower_rune_weapon)
 	Spell(empower_rune_weapon)
 }
 ]]
\ No newline at end of file
diff --git a/defaut/Demoniste.lua b/defaut/Demoniste.lua
index 52127b7..56bcd79 100644
--- a/defaut/Demoniste.lua
+++ b/defaut/Demoniste.lua
@@ -6,12 +6,13 @@ 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 )
+  SpellInfo(chaos_bolt burningembers=10 tick=1 )
+  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 )
+  SpellInfo(corruption duration=18 tick=2 stance=0)
   SpellAddTargetDebuff(corruption corruption=1)
 Define(curse_of_the_elements 1490)
   SpellInfo(curse_of_the_elements duration=300 )
@@ -35,9 +36,10 @@ 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=120 )
+  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(harvest_life 108371)
   SpellInfo(harvest_life duration=6 demonicfury=30 tick=1 )
   SpellAddTargetDebuff(harvest_life harvest_life=1)
@@ -82,7 +84,7 @@ Define(service_felguard 111898)
 Define(service_felhunter 111897)
   SpellInfo(service_felhunter cd=120 )
 Define(shadow_bolt 686)
-  SpellInfo(shadow_bolt demonicfury=40 )
+  SpellInfo(shadow_bolt demonicfury=40 stance=0)
 Define(shadowburn 17877)
   SpellInfo(shadowburn burningembers=10 )
 Define(shadowflame 47960)
@@ -139,6 +141,7 @@ AddIcon mastery=1 help=main
 }
 AddIcon mastery=1 help=offgcd
 {
+	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
 	if BuffPresent(dark_soul) and SoulShards() Spell(soulburn)
 	if {target.TicksRemain(unstable_affliction) <Ticks(unstable_affliction) /2 or target.TicksRemain(corruption) <Ticks(corruption) /2 or target.TicksRemain(agony) <Ticks(agony) /2 } and target.HealthPercent() <=20 and SoulShards() Spell(soulburn)
 }
@@ -151,6 +154,8 @@ 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)
@@ -163,7 +168,6 @@ AddIcon mastery=1 help=cd
 	 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	Spell(blood_fury)
 	Spell(dark_soul)
-	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
 	Spell(summon_doomguard)
 }
 AddIcon mastery=2 help=main
@@ -177,7 +181,7 @@ AddIcon mastery=2 help=main
 	if TalentPoints(grimoire_of_service_talent) Spell(service_felguard)
 	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felguard) Spell(summon_felguard)
 	if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <TickTime(corruption) } and target.DeadIn() >=6 Spell(corruption)
-	if {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <TickTime(doom) or {target.TicksRemain(doom) +1 <{target.TicksRemain(doom) + Ticks(doom) } and BuffPresent(dark_soul) } } and target.DeadIn() >=30 Spell(doom)
+	if {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <TickTime(doom) or {target.TicksRemain(doom) +1 <Ticks(doom) and BuffPresent(dark_soul) } } and target.DeadIn() >=30 Spell(doom)
 	if target.DebuffRemains(corruption) >20 and BuffExpires(dark_soul) and DemonicFury() <=750 and target.DeadIn() >30 if Stance(1) cancel.Texture(Spell_shadow_demonform)
 	if not InFlightToTarget(hand_of_guldan) and target.DebuffRemains(shadowflame) <1 +CastTime(shadow_bolt) Spell(hand_of_guldan)
 	if target.DebuffRemains(corruption) <20 Spell(touch_of_chaos)
@@ -189,6 +193,7 @@ AddIcon mastery=2 help=main
 }
 AddIcon mastery=2 help=offgcd
 {
+	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
 	Spell(melee)
 	Spell(felstorm)
 	Spell(wrathstorm)
@@ -218,7 +223,6 @@ AddIcon mastery=2 help=cd
 	 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	Spell(blood_fury)
 	Spell(dark_soul)
-	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
 	Spell(summon_doomguard)
 }
 AddIcon mastery=3 help=main
@@ -238,6 +242,10 @@ AddIcon mastery=3 help=main
 	Spell(incinerate)
 	if BurningEmbers() >2 and ManaPercent() <10 Spell(chaos_bolt)
 }
+AddIcon mastery=3 help=offgcd
+{
+	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
+}
 AddIcon mastery=3 help=aoe
 {

@@ -255,7 +263,6 @@ AddIcon mastery=3 help=cd
 	 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	Spell(blood_fury)
 	Spell(dark_soul)
-	if TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
 	Spell(summon_doomguard)
 }
 ]]
\ No newline at end of file
diff --git a/defaut/Druide.lua b/defaut/Druide.lua
index ca7e1ec..a57a734 100644
--- a/defaut/Druide.lua
+++ b/defaut/Druide.lua
@@ -19,6 +19,11 @@ Define(faerie_fire 770)
 Define(ferocious_bite 22568)
   SpellInfo(ferocious_bite combo=0 energy=25 )
 Define(healing_touch 5185)
+Define(heart_of_the_wild 108288)
+  SpellInfo(heart_of_the_wild duration=45 cd=360 )
+Define(hurricane 16914)
+  SpellInfo(hurricane duration=10 )
+  SpellAddBuff(hurricane hurricane=1)
 Define(incarnation 106731)
   SpellInfo(incarnation duration=30 cd=180 )
 Define(lunar_eclipse 48518)
@@ -71,8 +76,8 @@ Define(sunfire 93402)
   SpellInfo(sunfire duration=14 tick=2 )
   SpellAddTargetDebuff(sunfire sunfire=1)
 Define(thrash 106832)
-Define(thrash 106830)
-  SpellInfo(thrash duration=15 energy=50 tick=3 )
+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 )
@@ -104,14 +109,14 @@ AddIcon mastery=1 help=main
 		unless Stance(5) Spell(moonkin_form)
 	}
 	if TalentPoints(force_of_nature_talent) Spell(treants)
-	if not BuffPresent(dream_of_cenarius_damage) and TalentPoints(dream_of_cenarius_talent) Spell(healing_touch)
-	if Eclipse() <=0-70 and EclipseDir() <=0 Spell(wrath)
-	if Eclipse() >=60 and EclipseDir() >=0 Spell(starfire)
+	if TalentPoints(dream_of_cenarius_talent) and not BuffPresent(dream_of_cenarius_damage) and ManaPercent() >25 Spell(healing_touch)
 	if BuffPresent(lunar_eclipse) and {target.DebuffRemains(moonfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(moonfire)
-	if BuffPresent(solar_eclipse) and not BuffPresent(celestial_alignment) and {target.DebuffRemains(sunfire) <{BuffRemains(natures_grace) -2 +2 *ArmorSetParts(T14 more 4) } } Spell(sunfire)
-	if not target.DebuffPresent(moonfire) and not BuffPresent(celestial_alignment) and {BuffPresent(dream_of_cenarius_damage) or not TalentPoints(dream_of_cenarius_talent) } Spell(moonfire)
-	if not target.DebuffPresent(sunfire) and not BuffPresent(celestial_alignment) and {BuffPresent(dream_of_cenarius_damage) or not TalentPoints(dream_of_cenarius_talent) } Spell(sunfire)
-	Spell(starsurge)
+	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)
@@ -120,24 +125,30 @@ AddIcon mastery=1 help=main
 AddIcon mastery=1 help=offgcd
 {
 	if BuffStacks(wild_mushroom) >0 and BuffPresent(solar_eclipse) Spell(wild_mushroom_detonate)
-	if TalentPoints(dream_of_cenarius_talent) and TalentPoints(natures_swiftness_talent) Spell(natures_swiftness)
+	if TalentPoints(natures_swiftness_talent) and TalentPoints(dream_of_cenarius_talent) Spell(natures_swiftness)
 }
 AddIcon mastery=1 help=moving
 {
-	if not target.DebuffPresent(sunfire) Spell(moonfire)
-	if not target.DebuffPresent(moonfire) Spell(sunfire)
+	if target.TicksRemain(moonfire) <2 Spell(moonfire)
+	if target.TicksRemain(sunfire) <2 Spell(sunfire)
 	if BuffStacks(wild_mushroom) <5 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)
-	Spell(berserking)
+	if BuffPresent(celestial_alignment) Spell(berserking)
 	if TalentPoints(incarnation_talent) and {BuffPresent(lunar_eclipse) or BuffPresent(solar_eclipse) } Spell(incarnation)
-	if {{EclipseDir() ==0-1 and Eclipse() <=0 } or {EclipseDir() ==1 and Eclipse() >=0 } } and {BuffPresent(chosen_of_elune) or not TalentPoints(incarnation_talent) } Spell(celestial_alignment)
-	if {{TalentPoints(incarnation_talent) and BuffPresent(chosen_of_elune) } or {not TalentPoints(incarnation_talent) and BuffPresent(celestial_alignment) } } and TalentPoints(natures_vigil_talent) Spell(natures_vigil)
+	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) and {{TalentPoints(incarnation_talent) and BuffPresent(chosen_of_elune) } or {not TalentPoints(incarnation_talent) and BuffPresent(celestial_alignment) } } Spell(natures_vigil)
 }
 AddIcon mastery=2 help=main
 {
@@ -149,6 +160,7 @@ AddIcon mastery=2 help=main
 		Spell(savage_roar)
 		if TalentPoints(force_of_nature_talent) Spell(treants)
 	}
+
 	if target.DebuffStacks(weakened_armor) <3 Spell(faerie_fire)
 	if BuffExpires(savage_roar) Spell(savage_roar)
 	if target.IsInterruptible() Spell(skull_bash_cat)
@@ -186,24 +198,29 @@ AddIcon mastery=2 help=main
 	if SpellCooldown(tigers_fury) <=3.0 Spell(shred)
 	if TimeToMaxEnergy() <=1.0 Spell(shred)
 	if TalentPoints(force_of_nature_talent) Spell(treants)
+
 }
 AddIcon mastery=2 help=offgcd
 {
+
 	if Energy() <=35 and not BuffStacks(omen_of_clarity) Spell(tigers_fury)
 	if BuffStacks(omen_of_clarity) and target.DebuffRemains(thrash) <3 and BuffExpires(dream_of_cenarius_damage) Spell(thrash)
-	if TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.HealthPercent() <=25 Spell(natures_swiftness)
-	if TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.DebuffRemains(rip) <3 and {BuffPresent(berserk) or target.DebuffRemains(rip) <=SpellCooldown(tigers_fury) } and target.HealthPercent() >25 Spell(natures_swiftness)
+	if TalentPoints(natures_swiftness_talent) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.HealthPercent() <=25 Spell(natures_swiftness)
+	if TalentPoints(natures_swiftness_talent) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and BuffExpires(predatory_swiftness) and ComboPoints() >=5 and target.DebuffRemains(rip) <3 and {BuffPresent(berserk) or target.DebuffRemains(rip) <=SpellCooldown(tigers_fury) } and target.HealthPercent() >25 Spell(natures_swiftness)
 	if BuffStacks(omen_of_clarity) and target.DebuffRemains(thrash) <3 Spell(thrash)
 	if ComboPoints() >=5 and target.DebuffRemains(thrash) <6 and {BuffPresent(tigers_fury) or BuffPresent(berserk) } Spell(thrash)
 	if ComboPoints() >=5 and target.DebuffRemains(thrash) <6 and SpellCooldown(tigers_fury) <=3.0 Spell(thrash)
 	if ComboPoints() >=5 and target.DebuffRemains(thrash) <6 and TimeToMaxEnergy() <=1.0 Spell(thrash)
+
 }
 AddIcon mastery=2 help=cd
 {
+
 	 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	if BuffPresent(tigers_fury) or {target.DeadIn() <15 and SpellCooldown(tigers_fury) >6 } Spell(berserk)
 	if BuffPresent(berserk) and TalentPoints(natures_vigil_talent) Spell(natures_vigil)
 	if BuffPresent(berserk) and TalentPoints(incarnation_talent) Spell(incarnation)
 	Spell(berserking)
+
 }
 ]]
\ No newline at end of file
diff --git a/defaut/Guerrier.lua b/defaut/Guerrier.lua
index b21ca36..04c3b9c 100644
--- a/defaut/Guerrier.lua
+++ b/defaut/Guerrier.lua
@@ -1,5 +1,5 @@
 Ovale.defaut["WARRIOR"] = [[Define(avatar 107574)
-  SpellInfo(avatar duration=20 cd=180 )
+  SpellInfo(avatar duration=24 cd=180 )
   SpellAddBuff(avatar avatar=1)
 Define(battle_shout 6673)
   SpellInfo(battle_shout duration=300 cd=60 )
@@ -77,6 +77,10 @@ Define(shield_barrier 112048)
   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)
@@ -159,6 +163,7 @@ AddIcon mastery=1 help=cd
 {
 	if {{target.DebuffRemains(colossus_smash) >=5 or SpellCooldown(colossus_smash) <=4 } and {{not TalentPoints(avatar_talent) or not ArmorSetParts(T14 more 4) } and {{target.HealthPercent() <20 or target.DeadIn() >315 or {target.DeadIn() >165 and ArmorSetParts(T14 more 4) } } } or {TalentPoints(avatar_talent) and ArmorSetParts(T14 more 4) and BuffPresent(avatar) } } } or target.DeadIn() <=18 Spell(recklessness)
 	if TalentPoints(avatar_talent) and {{{SpellCooldown(recklessness) >=180 or BuffPresent(recklessness) } or {target.HealthPercent() >=20 and target.DeadIn() >195 } or {target.HealthPercent() <20 and ArmorSetParts(T14 more 4) } } or target.DeadIn() <=20 } Spell(avatar)
+	if not TalentPoints(bloodbath_talent) or {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) }  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	if TalentPoints(bladestorm_talent) and SpellCooldown(colossus_smash) >=5 and not target.DebuffPresent(colossus_smash) and SpellCooldown(bloodthirst) >=2 and target.HealthPercent() >=20 Spell(bladestorm)
 }
 AddIcon mastery=2 help=main
@@ -169,28 +174,28 @@ AddIcon mastery=2 help=main
 	}
 	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 if CheckBoxOn(showwait) Texture(Spell_nature_timestop)
+	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)
 	Spell(colossus_smash)
+	if TalentPoints(dragon_roar_talent) and {not target.DebuffPresent(colossus_smash) and BuffPresent(bloodbath) } Spell(dragon_roar)
 	if target.HealthPercent(less 20) Spell(execute)
 	if TalentPoints(storm_bolt_talent) Spell(storm_bolt)
-	if BuffStacks(raging_blow_aura) Spell(raging_blow)
+	if BuffStacks(raging_blow_aura) ==2 or {BuffStacks(raging_blow_aura) and {target.HealthPercent() <=20 or target.DebuffPresent(colossus_smash) or BuffPresent(bloodbath) or BuffPresent(recklessness) or SpellCooldown(colossus_smash) >=6 or {SpellCooldown(bloodthirst) >=1 and BuffRemains(raging_blow_aura) <=6 } } } Spell(raging_blow)
 	if BuffStacks(bloodsurge) and target.HealthPercent() >=20 Spell(wild_strike)
 	if TalentPoints(shockwave_talent) Spell(shockwave)
-	if TalentPoints(dragon_roar_talent) Spell(dragon_roar)
 	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) >=1 and Rage() >=60 and target.HealthPercent() >=20 Spell(wild_strike)
+	if SpellCooldown(colossus_smash) >=1 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(recklessness) >=10 or BuffPresent(recklessness) } or {target.HealthPercent() >=20 and {target.DeadIn() <=165 or {target.DeadIn() <=315 and not ArmorSetParts(T14 more 4) } } and target.DeadIn() >75 } } or target.DeadIn() <=19 } Spell(bloodbath)
-	if not {BuffStacks(enrage) or {BuffStacks(raging_blow_aura) ==2 and target.HealthPercent() >=20 } } Spell(berserker_rage)
+	if TalentPoints(bloodbath_talent) and {target.DebuffRemains(colossus_smash) >=5 and {target.DeadIn() >79 or {target.DeadIn() <79 and target.HealthPercent() <20 and {BuffPresent(recklessness) or SpellCooldown(recklessness) >={target.DeadIn() -25 } } } } } 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 {not TalentPoints(bloodbath_talent) and Rage() >=40 } or {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) and Rage() >=40 } Spell(deadly_calm)
 	if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
-	if Rage() >=40 Spell(deadly_calm)
 	if {{{target.DebuffPresent(colossus_smash) and Rage() >=40 } or {BuffPresent(deadly_calm) and Rage() >=30 } } and target.HealthPercent() >=20 } or Rage() >=110 Spell(heroic_strike)
 }
 AddIcon mastery=2 help=aoe
@@ -198,7 +203,7 @@ AddIcon mastery=2 help=aoe

 	Spell(dragon_roar)
 	Spell(shockwave)
-	if BuffStacks(meat_cleaver) Spell(raging_blow)
+	if BuffStacks(meat_cleaver) and BuffStacks(raging_blow_aura) Spell(raging_blow)
 	Spell(whirlwind)
 	if Rage() >=90 Spell(cleave)
 	Spell(bloodthirst)
@@ -206,8 +211,9 @@ AddIcon mastery=2 help=aoe
 }
 AddIcon mastery=2 help=cd
 {
-	if {{target.DebuffRemains(colossus_smash) >=5 or SpellCooldown(colossus_smash) <=4 } and {{not TalentPoints(avatar_talent) or not ArmorSetParts(T14 more 4) } and {{target.HealthPercent() <20 or target.DeadIn() >315 or {target.DeadIn() >165 and ArmorSetParts(T14 more 4) } } } or {TalentPoints(avatar_talent) and ArmorSetParts(T14 more 4) and BuffPresent(avatar) } } } or target.DeadIn() <=18 Spell(recklessness)
+	if {{target.DebuffRemains(colossus_smash) >=5 or SpellCooldown(colossus_smash) <=4 } and {{not TalentPoints(avatar_talent) or not ArmorSetParts(T14 more 4) } and {{target.HealthPercent() <20 or target.DeadIn() >315 or {target.DeadIn() >165 and ArmorSetParts(T14 more 4) } } } or {TalentPoints(avatar_talent) and ArmorSetParts(T14 more 4) and BuffPresent(avatar) } } } and {not TalentPoints(bloodbath_talent) or SpellCooldown(bloodbath) <=3 or {{target.DeadIn() >315 and target.DeadIn() <{315 +SpellCooldown(bloodbath) } } or {ArmorSetParts(T14 more 4) and target.DeadIn() >165 and target.DeadIn() <{165 +SpellCooldown(bloodbath) } } } } or target.DeadIn() <=18 Spell(recklessness)
 	if TalentPoints(avatar_talent) and {{{SpellCooldown(recklessness) >=180 or BuffPresent(recklessness) } or {target.HealthPercent() >=20 and target.DeadIn() >195 } or {target.HealthPercent() <20 and ArmorSetParts(T14 more 4) } } or target.DeadIn() <=20 } Spell(avatar)
+	if not TalentPoints(bloodbath_talent) or {TalentPoints(bloodbath_talent) and BuffPresent(bloodbath) }  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	if TalentPoints(bladestorm_talent) and SpellCooldown(colossus_smash) >=5 and not target.DebuffPresent(colossus_smash) and SpellCooldown(bloodthirst) >=2 and target.HealthPercent() >=20 Spell(bladestorm)
 }
 AddIcon mastery=3 help=main
@@ -228,7 +234,7 @@ AddIcon mastery=3 help=offgcd
 	if target.IsInterruptible() Spell(pummel)
 	Spell(berserker_rage)
 	if BuffPresent(ultimatum) Spell(heroic_strike)
-	if BuffExpires(shield_block) Spell(shield_block)
+	if BuffExpires(shield_block_aura) Spell(shield_block)
 	if BuffExpires(shield_barrier) and Rage() >80 Spell(shield_barrier)
 	Spell(demoralizing_shout)
 }
@@ -248,6 +254,6 @@ AddIcon mastery=3 help=cd
 	if Health() <130000 Spell(last_stand)
 	if TalentPoints(avatar_talent) Spell(avatar)
 	Spell(recklessness)
-	if BuffExpires(shield_block) Spell(shield_wall)
+	if BuffExpires(shield_block_aura) Spell(shield_wall)
 }
 ]]
\ No newline at end of file
diff --git a/defaut/Mage.lua b/defaut/Mage.lua
index 69543e1..1869cfb 100644
--- a/defaut/Mage.lua
+++ b/defaut/Mage.lua
@@ -90,7 +90,7 @@ 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 cd=6 )
+  SpellInfo(rune_of_power duration=60 )
 Define(time_warp 35346)
   SpellInfo(time_warp duration=6 cd=15 )
   SpellAddBuff(time_warp time_warp=1)
@@ -102,7 +102,7 @@ AddIcon mastery=1 help=main
 {
 	if not InCombat()
 	{
-		Spell(arcane_brilliance)
+		if BuffExpires(arcane_brilliance) Spell(arcane_brilliance)
 		Spell(mage_armor)
 		Spell(rune_of_power)
 	}
@@ -120,6 +120,7 @@ AddIcon mastery=1 help=main
 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 BuffExpires(alter_time) and BuffPresent(arcane_power) and BuffStacks(arcane_missiles_aura) ==2 and BuffStacks(arcane_charge) >3 and BuffRemains(rune_of_power) >6 Spell(alter_time)
 	if ManaPercent() <84 and BuffExpires(alter_time) Spell(mana_gem)
@@ -143,7 +144,7 @@ AddIcon mastery=2 help=main
 {
 	if not InCombat()
 	{
-		Spell(arcane_brilliance)
+		if BuffExpires(arcane_brilliance) Spell(arcane_brilliance)
 		Spell(molten_armor)
 	}
 	if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
@@ -156,6 +157,7 @@ AddIcon mastery=2 help=main
 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() <12 Spell(combustion)
 	if ArmorSetParts(T14 more 4) and target.DebuffPresent(ignite) and target.DebuffPresent(pyroblast_aura) Spell(combustion)
@@ -185,8 +187,8 @@ AddIcon mastery=3 help=main
 {
 	if not InCombat()
 	{
-		Spell(arcane_brilliance)
-		Spell(frost_armor)
+		if BuffExpires(arcane_brilliance) Spell(arcane_brilliance)
+		if BuffExpires(frost_armor) Spell(frost_armor)
 	}
 	if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
 	if BuffPresent(alter_time) and BuffPresent(brain_freeze) Spell(frostfire_bolt)
@@ -209,6 +211,7 @@ AddIcon mastery=3 help=offgcd
 		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 BuffStacks(fingers_of_frost_aura) <2 Spell(water_elemental_freeze)
 	if not target.DebuffPresent(frost_bomb) Spell(frost_bomb)
diff --git a/defaut/Moine.lua b/defaut/Moine.lua
index 062d563..9a4f735 100644
--- a/defaut/Moine.lua
+++ b/defaut/Moine.lua
@@ -23,6 +23,8 @@ Define(invoke_xuen 123904)
   SpellInfo(invoke_xuen duration=45 cd=180 )
 Define(jab 100780)
   SpellInfo(jab energy=40 chi=-1 )
+Define(power_strikes 129914)
+  SpellAddBuff(power_strikes power_strikes=1)
 Define(rising_sun_kick 107428)
   SpellInfo(rising_sun_kick chi=2 cd=8 )
 Define(rushing_jade_wind 116847)
@@ -54,16 +56,17 @@ AddIcon mastery=3 help=main
 		False()
 	}
 	if not target.DebuffRemains(rising_sun_kick) or target.DebuffRemains(rising_sun_kick) <=3 Spell(rising_sun_kick)
-	if BuffStacks(tiger_power) <3 or BuffRemains(tiger_power) <=3 Spell(tiger_palm)
+	if BuffRemains(tiger_power) <=3 Spell(tiger_palm)
 	if TalentPoints(rushing_jade_wind_talent) Spell(rushing_jade_wind)

 	Spell(rising_sun_kick)
-	if not BuffPresent(energizing_brew) and TimeToMaxEnergy() >{CastTime(fists_of_fury) } and BuffRemains(tiger_power) >{CastTime(fists_of_fury) } and BuffStacks(tiger_power) ==3 Spell(fists_of_fury)
+	if not BuffPresent(energizing_brew) and TimeToMaxEnergy() >{CastTime(fists_of_fury) } and BuffRemains(tiger_power) >{CastTime(fists_of_fury) } Spell(fists_of_fury)
 	if BuffStacks(combo_breaker_bok) Spell(blackout_kick)
 	if {Chi() >=3 and TimeToMaxEnergy() <=2 and not TalentPoints(ascension_talent) } or {Chi() >=4 and TimeToMaxEnergy() <=2 and TalentPoints(ascension_talent) } 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 {BuffStacks(combo_breaker_tp) and TimeToMaxEnergy() >=2 } or {BuffRemains(combo_breaker_tp) ==0 and BuffStacks(combo_breaker_tp) } Spell(tiger_palm)
 	if TalentPoints(ascension_talent) and Chi() <=3 Spell(jab)
-	if not TalentPoints(ascension_talent) and Chi() <=2 Spell(jab)
+	if TalentPoints(chi_brew_talent) and Chi() <=2 Spell(jab)
+	if TalentPoints(power_strikes_talent) and {{Chi() <=1 and not SpellCooldown(power_strikes) } or {Chi() <=2 and SpellCooldown(power_strikes) } } Spell(jab)
 	if {{Energy() +{EnergyRegen() *{SpellCooldown(rising_sun_kick) } } } >=40 } or {Chi() ==4 and not TalentPoints(ascension_talent) } or {Chi() ==5 and TalentPoints(ascension_talent) } Spell(blackout_kick)

 }
diff --git a/defaut/Paladin.lua b/defaut/Paladin.lua
index b83381c..8e92e2b 100644
--- a/defaut/Paladin.lua
+++ b/defaut/Paladin.lua
@@ -9,9 +9,6 @@ Define(blessing_of_might 19740)
   SpellAddBuff(blessing_of_might blessing_of_might=1)
 Define(crusader_strike 35395)
   SpellInfo(crusader_strike holy=-1 cd=4.5 )
-Define(darkmist_vortex 126657)
-  SpellInfo(darkmist_vortex duration=20 )
-  SpellAddBuff(darkmist_vortex darkmist_vortex=1)
 Define(execution_sentence 114916)
   SpellInfo(execution_sentence duration=10 tick=1 )
   SpellAddTargetDebuff(execution_sentence execution_sentence=1)
@@ -27,9 +24,6 @@ Define(inquisition 84963)
   SpellAddBuff(inquisition inquisition=1)
 Define(judgment 20271)
   SpellInfo(judgment cd=6 )
-Define(lei_shins_final_orders 126582)
-  SpellInfo(lei_shins_final_orders duration=20 )
-  SpellAddBuff(lei_shins_final_orders lei_shins_final_orders=1)
 Define(rebuke 96231)
   SpellInfo(rebuke duration=4 cd=15 )
 Define(seal_of_insight 20165)
@@ -54,6 +48,7 @@ AddIcon mastery=3 help=main
 	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)
 	Spell(exorcism)
+	if target.HealthPercent() <=20 or BuffPresent(avenging_wrath) Spell(judgment)
 	Spell(crusader_strike)
 	Spell(judgment)
 	if HolyPower() >=3 Spell(templars_verdict)
@@ -61,12 +56,12 @@ AddIcon mastery=3 help=main
 AddIcon mastery=3 help=offgcd
 {
 	if target.IsInterruptible() Spell(rebuke)
-	if BuffPresent(inquisition) Spell(execution_sentence)
+	if BuffPresent(inquisition) and TimeInCombat() >10 Spell(execution_sentence)
 }
 AddIcon mastery=3 help=cd
 {
-	if BuffPresent(inquisition) and {BuffPresent(darkmist_vortex) or BuffPresent(lei_shins_final_orders) } Spell(avenging_wrath)
-	if BuffPresent(inquisition) and BuffPresent(avenging_wrath) Spell(guardian_of_ancient_kings)
-	if BuffPresent(inquisition)  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+	if BuffPresent(inquisition) Spell(avenging_wrath)
+	if BuffPresent(avenging_wrath) Spell(guardian_of_ancient_kings)
+	if BuffPresent(inquisition) and TimeInCombat() >10  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 }
 ]]
\ No newline at end of file
diff --git a/defaut/Pretre.lua b/defaut/Pretre.lua
index 65cd983..e5b19f9 100644
--- a/defaut/Pretre.lua
+++ b/defaut/Pretre.lua
@@ -11,7 +11,7 @@ Define(divine_insight_shadow 124430)
   SpellInfo(divine_insight_shadow duration=12 )
   SpellAddBuff(divine_insight_shadow divine_insight_shadow=1)
 Define(halo_damage 120517)
-  SpellInfo(halo_damage cd=40 )
+  SpellInfo(halo_damage duration=5.5 cd=40 )
 Define(inner_fire 588)
   SpellAddBuff(inner_fire inner_fire=1)
 Define(inner_will 73413)
@@ -36,7 +36,6 @@ Define(shadow_word_pain 589)
 Define(shadowfiend 34433)
   SpellInfo(shadowfiend duration=12 cd=180 )
 Define(shadowform 15473)
-  SpellInfo(shadowform cd=1.5 )
   SpellAddBuff(shadowform shadowform=1)
 Define(surge_of_darkness 87160)
   SpellInfo(surge_of_darkness duration=10 )
diff --git a/defaut/Voleur.lua b/defaut/Voleur.lua
index 28d1a1e..9570fa6 100644
--- a/defaut/Voleur.lua
+++ b/defaut/Voleur.lua
@@ -27,7 +27,7 @@ Define(hemorrhage 16511)
   SpellInfo(hemorrhage energy=30 combo=1 )
 Define(honor_among_thieves 51701)
 Define(kick 1766)
-  SpellInfo(kick duration=5 energy=15 cd=15 )
+  SpellInfo(kick duration=5 energy=10 cd=15 )
 Define(killing_spree 51690)
   SpellInfo(killing_spree duration=3 cd=120 )
   SpellAddBuff(killing_spree killing_spree=1)
@@ -158,11 +158,11 @@ AddIcon mastery=3 help=offgcd
 	if not InCombat()
 	{
 		Spell(stealth)
-		Spell(premeditation)
+		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)
+	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