Quantcast

last simulationcraft version

Sidoine De Wispelaere [08-29-12 - 21:15]
last simulationcraft version
some bug fixes

git-svn-id: svn://svn.curseforge.net/wow/ovale/mainline/trunk@517 d5049fe3-3747-40f7-a4b5-f36d6801af5f
Filename
Ovale.toc
OvaleCondition.lua
defaut/Chaman.lua
defaut/Chevalier.lua
defaut/Demoniste.lua
defaut/Druide.lua
defaut/Guerrier.lua
defaut/Mage.lua
defaut/Paladin.lua
defaut/Pretre.lua
defaut/Voleur.lua
diff --git a/Ovale.toc b/Ovale.toc
index 401e46f..19323dc 100644
--- a/Ovale.toc
+++ b/Ovale.toc
@@ -4,7 +4,7 @@
 ## Notes: Show the icon of the next spell to cast
 ## Notes-frFR: Affiche l'icône du prochain sort à lancer
 ## Author: Sidoine
-## Version: 5.0.0
+## Version: 5.0.1
 ## OptionalDeps: Ace3, Masque, Recount, Skada, LibBabble-CreatureType-3.0, LibRangeCheck-2.0
 ## SavedVariables: OvaleDB
 ## SavedVariablesPerCharacter: OvaleDBPC
diff --git a/OvaleCondition.lua b/OvaleCondition.lua
index 155431a..dba6044 100644
--- a/OvaleCondition.lua
+++ b/OvaleCondition.lua
@@ -1147,8 +1147,10 @@ OvaleCondition.conditions=
 		return compare(GetUnitSpeed(getTarget(condition.target))*100/7, condition[1], condition[2])
 	end,
 	-- Check if the spell is usable
+	-- 1: spell Id
+	-- return: bool
 	spellusable = function(condition)
-		return testbool(IsUsableSpell(spellId), condition[1], condition[2])
+		return testbool(IsUsableSpell(condition[1]), condition[2], condition[3])
 	end,
 	-- Get the spell cooldown
 	-- 1: spell ID
@@ -1157,7 +1159,7 @@ OvaleCondition.conditions=
 		if type(condition[1]) == "string" then
 			local sharedCd = OvaleState.state.cd[condition[1]]
 			if sharedCd then
-				return 0, nil, sharedCD.duration, sharedCD.start, -1
+				return 0, nil, sharedCd.duration, sharedCd.start, -1
 			else
 				return nil
 			end
@@ -1346,7 +1348,7 @@ OvaleCondition.conditions=
 			if ((condition[2] or 0) >= mainHandExpiration) then
 				return 0
 			else
-				return OvaleState.maintenant + mainHandExpiration - condition[2]
+				return OvaleState.maintenant + mainHandExpiration - (condition[2] or 60)
 			end
 		else
 			if (not hasOffHandEnchant) then
@@ -1356,7 +1358,7 @@ OvaleCondition.conditions=
 			if ((condition[2] or 0) >= offHandExpiration) then
 				return 0
 			else
-				return OvaleState.maintenant + offHandExpiration - condition[2]
+				return OvaleState.maintenant + offHandExpiration - (condition[2] or 60)
 			end
 		end
 	end,
diff --git a/defaut/Chaman.lua b/defaut/Chaman.lua
index 181e888..5faf105 100644
--- a/defaut/Chaman.lua
+++ b/defaut/Chaman.lua
@@ -78,15 +78,16 @@ AddIcon mastery=1 help=main
 {
 	if not InCombat()
 	{
-		main.Spell(flametongue_weapon)
+		if WeaponEnchantExpires(mainhand) main.Spell(flametongue_weapon)
 	}

 	{
-		if TalentPoints(elemental_blast_talent) and not BuffPresent(ascendance) Spell(elemental_blast)
 		if TalentPoints(unleashed_fury_talent) and not BuffPresent(ascendance) Spell(unleash_elements)
 		if not BuffPresent(ascendance) and {not target.DebuffPresent(flame_shock) or TicksRemain(flame_shock) <2 or {{BuffPresent(bloodlust) or BuffPresent(elemental_mastery) } and 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 BuffPresent(lightning_shield) ==0 Spell(earth_shock)
+		if BuffPresent(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 not TotemPresent(fire) Spell(searing_totem)
 		Spell(lightning_bolt)
 	}
@@ -130,7 +131,7 @@ AddIcon mastery=1 help=cd
 	if target.HealthPercent() <25 or TimeInCombat() >5 Spell(bloodlust)

 	{
-		if {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } or BuffPresent(ascendance) or BuffPresent(bloodlust) or TotemPresent(fire_elemental_totem)  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+		if {{SpellCooldown(ascendance) >10 or Level() <87 } and SpellCooldown(fire_elemental_totem) >10 } or BuffPresent(ascendance) or BuffPresent(bloodlust) or TotemPresent(fire)  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 		if BuffPresent(bloodlust) 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) and TimeInCombat() <120 } or {not BuffPresent(berserking) and not BuffPresent(bloodlust) and BuffPresent(ascendance) } or {TimeInCombat() >=200 and {SpellCooldown(ascendance) >30 or Level() <87 } } } Spell(elemental_mastery)
 		if not TotemPresent(fire) Spell(fire_elemental_totem)
@@ -148,7 +149,7 @@ AddIcon mastery=2 help=main
 	if not InCombat()
 	{
 		main.Spell(windfury_weapon)
-		off.Spell(flametongue_weapon)
+		if WeaponEnchantExpires(offhand) off.Spell(flametongue_weapon)
 	}

 	{
@@ -174,6 +175,7 @@ AddIcon mastery=2 help=main
 		if Enemies() >2 and BuffPresent(maelstrom_weapon) >=3 Spell(chain_lightning)
 		Spell(unleash_elements)
 		if not target.DebuffPresent(flame_shock) Spell(flame_shock)
+		Spell(stormblast)
 		Spell(stormstrike)
 		if BuffPresent(maelstrom_weapon) ==5 and SpellCooldown(chain_lightning) >=2 Spell(lightning_bolt)
 		if Enemies() >2 and BuffPresent(maelstrom_weapon) >1 Spell(chain_lightning)
@@ -214,8 +216,8 @@ AddIcon mastery=2 help=cd
 	if Enemies() >1
 	{
 		Spell(blood_fury)
-		Spell(ascendance)
-		if not TotemPresent(fire) Spell(fire_elemental_totem)
+		if SpellCooldown(strike) >=3 Spell(ascendance)
+		if not TotemPresent(fire) and {BuffPresent(bloodlust) 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)
 		Spell(feral_spirit)
 	}
 }
diff --git a/defaut/Chevalier.lua b/defaut/Chevalier.lua
index 0870b01..f161b50 100644
--- a/defaut/Chevalier.lua
+++ b/defaut/Chevalier.lua
@@ -11,6 +11,9 @@ Define(blood_tap 45529)
 Define(dark_transformation 63560)
   SpellInfo(dark_transformation duration=30 unholy=1 runicpower=-100 xxx=0 )
   SpellAddBuff(dark_transformation dark_transformation=1)
+Define(death_and_decay 43265)
+  SpellInfo(death_and_decay duration=10 unholy=1 runicpower=-100 xxx=0 cd=30 )
+  SpellAddBuff(death_and_decay death_and_decay=1)
 Define(death_coil 47541)
   SpellInfo(death_coil runicpower=400 )
 Define(empower_rune_weapon 47568)
@@ -31,6 +34,7 @@ Define(howling_blast 49184)
   SpellInfo(howling_blast frost=1 runicpower=-100 xxx=0 )
 Define(icy_touch 45477)
   SpellInfo(icy_touch frost=1 runicpower=-100 xxx=0 )
+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)
@@ -56,6 +60,9 @@ Define(sudden_doom 49530)
 Define(summon_gargoyle 49206)
   SpellInfo(summon_gargoyle duration=40 runicpower=600 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)
@@ -63,29 +70,33 @@ Define(unholy_presence 48265)
   SpellAddBuff(unholy_presence unholy_presence=1)
 Define(blood_tap_talent 13)
 Define(plague_leech_talent 2)
+Define(unholy_blight_talent 3)
 AddIcon mastery=2 help=main
 {
 	if not InCombat()
 	{
-		Spell(horn_of_winter)
 		unless Stance(2) Spell(frost_presence)
+		Spell(horn_of_winter)
 	}
-	if target.DebuffRemains(frost_fever) <=0 or target.DebuffRemains(blood_plague) <=0 Spell(outbreak)
+	if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
 	if not target.DebuffPresent(frost_fever) Spell(howling_blast)
 	if not target.DebuffPresent(blood_plague) Spell(plague_strike)
-	if TalentPoints(plague_leech_talent) and {{SpellCooldown(outbreak) <1 } or {BuffPresent(rime) and target.DebuffRemains(blood_plague) <3 and {RuneCount(unholy) >=1 or RuneCount(death) >=1 } } } Spell(plague_leech)
+	if TalentPoints(plague_leech_talent) and not {{BuffPresent(killing_machine) and RunicPower() <10 } or {RuneCount(unholy) ==2 or RuneCount(frost) ==2 or RuneCount(death) ==2 } } Spell(plague_leech)
 	if BuffPresent(rime) Spell(howling_blast)
-	if RunicPower() >=76 Spell(frost_strike)
-	if RuneCount(unholy) >=1 Spell(obliterate)
+	if RunicPower() >=88 Spell(frost_strike)
+	if BuffPresent(killing_machine) Spell(frost_strike)
+	if BuffPresent(killing_machine) and RunicPower() <10 Spell(obliterate)
+	if {RuneCount(unholy) ==2 or RuneCount(frost) ==2 or RuneCount(death) ==2 } Spell(obliterate)
 	Spell(howling_blast)
 	Spell(frost_strike)
-	Spell(obliterate)
+	Spell(death_and_decay)
+	Spell(plague_strike)
 	Spell(horn_of_winter)
 }
 AddIcon mastery=2 help=offgcd
 {
 	Spell(pillar_of_frost)
-	if target.HealthPercent() <=35 Spell(soul_reaper)
+	if target.HealthPercent() <=35 or {{target.HealthPercent() -3 *{target.HealthPercent() /target.DeadIn() } } <=35 } Spell(soul_reaper)
 	if TalentPoints(blood_tap_talent) Spell(blood_tap)
 }
 AddIcon mastery=2 help=cd
@@ -95,8 +106,9 @@ AddIcon mastery=2 help=cd
 		Spell(army_of_the_dead)
 	}
 	if TimeInCombat() >=10 Spell(blood_fury)
-	 { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
+	if {RuneCount(frost) >=1 or RuneCount(death) >=1 }  { Item(Trinket0Slot usable=1) Item(Trinket1Slot usable=1) }
 	Spell(raise_dead)
+	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)
 }
@@ -104,8 +116,8 @@ AddIcon mastery=3 help=main
 {
 	if not InCombat()
 	{
-		Spell(horn_of_winter)
 		unless Stance(3) Spell(unholy_presence)
+		Spell(horn_of_winter)
 	}
 	if target.DebuffRemains(frost_fever) <3 or target.DebuffRemains(blood_plague) <3 Spell(outbreak)
 	if not target.DebuffPresent(frost_fever) Spell(icy_touch)
@@ -123,7 +135,7 @@ AddIcon mastery=3 help=main
 }
 AddIcon mastery=3 help=offgcd
 {
-	if target.HealthPercent() <=35.5 Spell(soul_reaper)
+	if target.HealthPercent() <=35 or {{target.HealthPercent() -3 *{target.HealthPercent() /target.DeadIn() } } <=35 } Spell(soul_reaper)
 	if TalentPoints(blood_tap_talent) Spell(blood_tap)
 }
 AddIcon mastery=3 help=cd
@@ -136,6 +148,7 @@ AddIcon mastery=3 help=cd
 	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)
 	if target.DeadIn() <=60 and BuffPresent(mogu_power_potion_aura) Spell(empower_rune_weapon)
 	Spell(empower_rune_weapon)
diff --git a/defaut/Demoniste.lua b/defaut/Demoniste.lua
index 8571eb4..d7e19d5 100644
--- a/defaut/Demoniste.lua
+++ b/defaut/Demoniste.lua
@@ -75,8 +75,8 @@ Define(seed_of_corruption 27243)
   SpellAddTargetDebuff(seed_of_corruption seed_of_corruption=1)
 Define(service_felguard 111898)
   SpellInfo(service_felguard cd=120 )
-Define(service_succubus 111896)
-  SpellInfo(service_succubus cd=120 )
+Define(service_felhunter 111897)
+  SpellInfo(service_felhunter cd=120 )
 Define(shadow_bolt 686)
   SpellInfo(shadow_bolt demonicfury=40 )
 Define(shadowburn 17877)
@@ -95,10 +95,10 @@ 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(summon_succubus 712)
-  SpellInfo(summon_succubus demonicfury=0 )
 Define(touch_of_chaos 103964)
   SpellInfo(touch_of_chaos demonicfury=40 stance=1)
 Define(unstable_affliction 30108)
@@ -117,11 +117,11 @@ AddIcon mastery=1 help=main
 	if not InCombat()
 	{
 		if not BuffPresent(spell_power_multiplier) Spell(dark_intent)
-		unless pet.CreatureFamily(Succubus) Spell(summon_succubus)
+		unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
 	}
 	if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
-	if TalentPoints(grimoire_of_service_talent) Spell(service_succubus)
-	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Succubus) Spell(summon_succubus)
+	if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
 	if Enemies() >3
 	{
 		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)
@@ -130,12 +130,12 @@ AddIcon mastery=1 help=main
 		if not InFlightToTarget(fel_flame) Spell(fel_flame)
 	}
 	if BuffPresent(soulburn) Spell(soul_swap)
-	if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <target.NextTick(haunt) +1 +CastTime(haunt) and SoulShards() Spell(haunt)
-	if Enemies() >1 and TimeInCombat() <10 Spell(soul_swap)
-	if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <target.NextTick(haunt) +1 +CastTime(haunt) and SoulShards() >1 Spell(haunt)
+	if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <TickTime(haunt) +1 +CastTime(haunt) and SoulShards() Spell(haunt)
+	if Enemies() >1 and TimeInCombat() <10 and Glyph(56226) Spell(soul_swap)
+	if not InFlightToTarget(haunt) and target.DebuffRemains(haunt) <TickTime(haunt) +1 +CastTime(haunt) and SoulShards() >1 Spell(haunt)
 	if {not target.DebuffPresent(agony) or target.DebuffRemains(agony) <=TickTime(drain_soul) *2 } and target.DeadIn() >=8 Spell(agony)
-	if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <target.NextTick(corruption) } and target.DeadIn() >=6 Spell(corruption)
-	if {not target.DebuffPresent(unstable_affliction) or target.DebuffRemains(unstable_affliction) <{CastTime(unstable_affliction) +target.NextTick(unstable_affliction) } } and target.DeadIn() >=5 Spell(unstable_affliction)
+	if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <TickTime(corruption) } and target.DeadIn() >=6 Spell(corruption)
+	if {not target.DebuffPresent(unstable_affliction) or target.DebuffRemains(unstable_affliction) <{CastTime(unstable_affliction) +TickTime(unstable_affliction) } } and target.DeadIn() >=5 Spell(unstable_affliction)
 	if TicksRemain(agony) <Ticks(agony) /2 and target.DeadIn() >=8 Spell(agony)
 	if TicksRemain(corruption) <Ticks(corruption) /2 and target.DeadIn() >=6 Spell(corruption)
 	if TicksRemain(unstable_affliction) <Ticks(unstable_affliction) /2 +1 and target.DeadIn() >=5 Spell(unstable_affliction)
@@ -150,7 +150,8 @@ AddIcon mastery=1 help=offgcd
 	{
 		if BuffExpires(soulburn) and not target.DebuffPresent(soulburn_seed_of_corruption) and not InFlightToTarget(soulburn_seed_of_corruption) and SoulShards() Spell(soulburn)
 	}
-	if BuffPresent(dark_soul) and {BuffRemains(dark_soul) >=18.5 or BuffRemains(dark_soul) <=1.5 } and SoulShards() Spell(soulburn)
+	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)
 }
 AddIcon mastery=1 help=moving
 {
@@ -188,14 +189,14 @@ AddIcon mastery=2 help=main
 	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felguard) Spell(summon_felguard)
 	if Enemies() >5
 	{
-		if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <target.NextTick(corruption) } and target.DeadIn() >=6 Spell(corruption)
+		if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <TickTime(corruption) } and target.DeadIn() >=6 Spell(corruption)
 		Spell(hand_of_guldan)
 		if {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <40 } and target.DeadIn() >30 Spell(doom)
 		if TalentPoints(harvest_life_talent) Spell(harvest_life)
 		Spell(life_tap)
 	}
-	if {not target.DebuffPresent(corruption) or target.DebuffRemains(corruption) <target.NextTick(corruption) } and target.DeadIn() >=6 Spell(corruption)
-	if {not target.DebuffPresent(doom) or target.DebuffRemains(doom) <target.NextTick(doom) or {TicksRemain(doom) +1 <{target.TicksRemain(doom) + Ticks(doom) } and BuffPresent(dark_soul) } } and target.DeadIn() >=30 Spell(doom)
+	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 {TicksRemain(doom) +1 <{target.TicksRemain(doom) + 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)
@@ -248,11 +249,11 @@ AddIcon mastery=3 help=main
 	if not InCombat()
 	{
 		if not BuffPresent(spell_power_multiplier) Spell(dark_intent)
-		unless pet.CreatureFamily(Succubus) Spell(summon_succubus)
+		unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
 	}
 	if target.DebuffExpires(magic_vulnerability any=1) Spell(curse_of_the_elements)
-	if TalentPoints(grimoire_of_service_talent) Spell(service_succubus)
-	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Succubus) Spell(summon_succubus)
+	if TalentPoints(grimoire_of_service_talent) Spell(service_felhunter)
+	if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice) unless pet.CreatureFamily(Felhunter) Spell(summon_felhunter)
 	if Enemies() >2
 	{
 		if BuffPresent(fire_and_brimstone) and not target.DebuffPresent(immolate) Spell(immolate)
@@ -262,10 +263,11 @@ AddIcon mastery=3 help=main
 	}
 	if Enemies() >1 focus.Spell(havoc)
 	if BurningEmbers() if target.HealthPercent(less 20) Spell(shadowburn)
-	if BurningEmbers() and {BuffStacks(backdraft) <3 or Level() <86 } Spell(chaos_bolt)
-	if BuffExpires(backdraft) Spell(conflagrate)
 	if TicksRemain(immolate) <Ticks(immolate) /2 and target.DeadIn() >=5 Spell(immolate)
+	if BurningEmbers() and {BuffStacks(backdraft) <3 or Level() <86 } and {BurningEmbers() >3.5 or BuffRemains(dark_soul) >CastTime(chaos_bolt) } and ManaPercent() <=80 Spell(chaos_bolt)
+	Spell(conflagrate)
 	Spell(incinerate)
+	if BurningEmbers() >2 and ManaPercent() <10 Spell(chaos_bolt)
 }
 AddIcon mastery=3 help=offgcd
 {
diff --git a/defaut/Druide.lua b/defaut/Druide.lua
index 33e4e2c..91f6a72 100644
--- a/defaut/Druide.lua
+++ b/defaut/Druide.lua
@@ -158,16 +158,17 @@ AddIcon mastery=2 help=main
 	if ComboPoints() >=5 and target.DeadIn() >=6 and target.DebuffRemains(rip) <2.0 and {BuffPresent(berserk) or target.DebuffRemains(rip) <=SpellCooldown(tigers_fury) } Spell(rip)
 	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {{{ComboPoints() >=5 and target.DebuffRemains(rip) >{5 +SpellCooldown(healing_touch) } and BuffRemains(savage_roar) >={1 +SpellCooldown(healing_touch) } and BuffRemains(berserk) >SpellCooldown(healing_touch) } } } Spell(healing_touch)
 	if ComboPoints() >=5 and target.DebuffRemains(rip) >5.0 and BuffRemains(savage_roar) >=1.0 and BuffPresent(berserk) Spell(ferocious_bite)
-	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or {target.DebuffRemains(rip) >4 and ArmorSetParts(T14 more 4) } } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and SpellCooldown(tigers_fury) >21 and target.DebuffRemains(rake) <{12.0 +SpellCooldown(healing_touch) } } } } Spell(healing_touch)
-	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or {target.DebuffRemains(rip) >4 and ArmorSetParts(T14 more 4) } } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and target.DebuffRemains(rake) <{3.0 +SpellCooldown(healing_touch) } and {BuffRemains(berserk) >SpellCooldown(healing_touch) or {SpellCooldown(tigers_fury) +0.8 } >=target.DebuffRemains(rake) } } } } Spell(healing_touch)
-	if target.DeadIn() >=8.5 and BuffPresent(dream_of_cenarius_damage) and {{LastSpellDamageMultiplier(rake) <DamageMultiplier(rake) } or {target.DebuffRemains(rake) <12.0 and {LastSpellDamageMultiplier(rake) <=DamageMultiplier(rake) } and not PreviousSpell(rake) } } Spell(rake)
+	if ComboPoints() >=5 and target.DeadIn() >=8.5 and target.DebuffRemains(rip) <=12 and BuffRemains(savage_roar) <={target.DebuffRemains(rip) +4 } Spell(savage_roar)
+	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or target.DebuffRemains(rip) >4 } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and {BuffRemains(tigers_fury) >=SpellCooldown(healing_touch) or {SpellCooldown(tigers_fury) >21 and target.DebuffRemains(rake) <{12.0 +SpellCooldown(healing_touch) } } } } } } Spell(healing_touch)
+	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or target.DebuffRemains(rip) >4 } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and target.DebuffRemains(rake) <{3.0 +SpellCooldown(healing_touch) } and {BuffRemains(berserk) >SpellCooldown(healing_touch) or {SpellCooldown(tigers_fury) +0.8 } >=target.DebuffRemains(rake) } } } } Spell(healing_touch)
+	if target.DeadIn() >=8.5 and BuffPresent(dream_of_cenarius_damage) and {LastSpellDamageMultiplier(rake) <=DamageMultiplier(rake) } and not PreviousSpell(rake) Spell(rake)
 	if target.DeadIn() >=8.5 and target.DebuffRemains(rake) <9.0 and not TalentPoints(dream_of_cenarius_talent) and BuffPresent(tigers_fury) and {LastSpellDamageMultiplier(rake) <DamageMultiplier(rake) } Spell(rake)
 	if target.DeadIn() >=8.5 and target.DebuffRemains(rake) <3.0 and {BuffPresent(berserk) or {SpellCooldown(tigers_fury) +0.8 } >=target.DebuffRemains(rake) } Spell(rake)
 	if BuffPresent(omen_of_clarity) Spell(ravage usable=1)
 	if BuffPresent(omen_of_clarity) Spell(shred)
 	if {target.DeadIn() <=4 and ComboPoints() >=5 } or target.DeadIn() <=1 Spell(ferocious_bite)
-	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {{{ComboPoints() >=5 and target.DebuffRemains(rip) >=6.0 and BuffPresent(savage_roar) } } } Spell(healing_touch)
-	if ComboPoints() >=5 and target.DebuffRemains(rip) >=6.0 and BuffPresent(savage_roar) Spell(ferocious_bite)
+	if BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {{{ComboPoints() >=5 and target.DebuffRemains(rip) >={8.0 +SpellCooldown(healing_touch) } and BuffRemains(savage_roar) >={SpellCooldown(healing_touch) } } } } Spell(healing_touch)
+	if ComboPoints() >=5 and target.DebuffRemains(rip) >=8.0 and BuffPresent(savage_roar) Spell(ferocious_bite)
 	if {BuffPresent(tigers_fury) or BuffPresent(berserk) } Spell(ravage usable=1)
 	if {{ComboPoints() <5 and target.DebuffRemains(rip) <3.0 } or {ComboPoints() ==0 and BuffRemains(savage_roar) <2 } } Spell(ravage usable=1)
 	if SpellCooldown(tigers_fury) <=3.0 Spell(ravage usable=1)
@@ -184,7 +185,7 @@ AddIcon mastery=2 help=offgcd
 	if Energy() <=35 and not BuffPresent(omen_of_clarity) Spell(tigers_fury)
 	if not BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and TalentPoints(natures_swiftness_talent) and {{{ComboPoints() >=5 and target.DebuffRemains(rip) >SpellCooldown(healing_touch) and target.HealthPercent() <=25 } } } Spell(natures_swiftness)
 	if not BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and TalentPoints(natures_swiftness_talent) and target.HealthPercent() >25 and {{{ComboPoints() >=5 and target.DeadIn() >={6 +SpellCooldown(healing_touch) } and target.DebuffRemains(rip) <{2 +SpellCooldown(healing_touch) } and {BuffPresent(berserk) or target.DebuffRemains(rip) <=SpellCooldown(tigers_fury) } } } } Spell(natures_swiftness)
-	if not BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or {target.DebuffRemains(rip) >4 and ArmorSetParts(T14 more 4) } } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and BuffPresent(tigers_fury) and target.DebuffRemains(rake) <{12.0 +SpellCooldown(healing_touch) } } } } Spell(natures_swiftness)
+	if not BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or {target.DebuffRemains(rip) >4 and ArmorSetParts(T14 more 4) } } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and BuffPresent(tigers_fury) } } } Spell(natures_swiftness)
 	if not BuffPresent(predatory_swiftness) and TalentPoints(dream_of_cenarius_talent) and BuffExpires(dream_of_cenarius_damage) and {target.HealthPercent() <=25 or {target.DebuffRemains(rip) >4 and ArmorSetParts(T14 more 4) } } and {{{target.DeadIn() >={8.5 +SpellCooldown(healing_touch) } and target.DebuffRemains(rake) <{3.0 +SpellCooldown(healing_touch) } and {BuffRemains(berserk) >SpellCooldown(healing_touch) or {SpellCooldown(tigers_fury) +0.8 } >=target.DebuffRemains(rake) } } } } Spell(natures_swiftness)
 }
 AddIcon mastery=2 help=cd
diff --git a/defaut/Guerrier.lua b/defaut/Guerrier.lua
index c0bea7a..dc62237 100644
--- a/defaut/Guerrier.lua
+++ b/defaut/Guerrier.lua
@@ -94,7 +94,7 @@ AddIcon mastery=1 help=offgcd
 	if not BuffPresent(enrage) Spell(berserker_rage)
 	if target.DebuffPresent(colossus_smash) if CheckBoxOn(heroic_leap_check) Spell(heroic_leap)
 	if Rage() >=40 Spell(deadly_calm)
-	if {{BuffPresent(taste_for_blood) and BuffRemains(taste_for_blood) <=2 } or {BuffStacks(taste_for_blood) ==5 and BuffPresent(overpower) } or {BuffPresent(taste_for_blood) and target.DebuffRemains(colossus_smash) <=2 and not SpellCooldown(colossus_smash) ==0 } or BuffPresent(deadly_calm) or Rage() >110 } and target.HealthPercent() >=20 Spell(heroic_strike)
+	if {{BuffPresent(taste_for_blood) and BuffRemains(taste_for_blood) <=2 } or {BuffStacks(taste_for_blood) ==5 and BuffPresent(overpower) } or {BuffPresent(taste_for_blood) and target.DebuffRemains(colossus_smash) <=2 and not SpellCooldown(colossus_smash) ==0 } or BuffPresent(deadly_calm) or Rage() >110 } and target.HealthPercent() >=20 and target.DebuffPresent(colossus_smash) Spell(heroic_strike)
 }
 AddIcon mastery=1 help=aoe
 {
diff --git a/defaut/Mage.lua b/defaut/Mage.lua
index f0bad6b..cdc8870 100644
--- a/defaut/Mage.lua
+++ b/defaut/Mage.lua
@@ -107,12 +107,11 @@ AddIcon mastery=1 help=main
 	}
 	if ItemCharges(36799) <3 and False() Spell(conjure_mana_gem)
 	if BuffPresent(alter_time) and BuffPresent(presence_of_mind) Spell(arcane_blast)
-	if not target.DebuffPresent(nether_tempest) Spell(nether_tempest)
 	if BuffExpires(rune_of_power) and BuffExpires(alter_time) Spell(rune_of_power)
 	if not target.DebuffPresent(nether_tempest) Spell(nether_tempest)
 	if ManaPercent() >92 Spell(arcane_blast)
-	if BuffPresent(arcane_charge) and BuffExpires(arcane_power) and BuffExpires(alter_time) and target.DeadIn() >25 and {ManaPercent() <92 or SpellCooldown(mana_gem) >10 or ItemCharges(36799) ==0 } Spell(arcane_barrage)
-	if BuffStacks(arcane_charge) ==6 and BuffExpires(arcane_missiles_aura) and target.DeadIn() >25 Spell(arcane_barrage)
+	if BuffPresent(arcane_charge) and BuffExpires(arcane_power) and BuffExpires(alter_time) and target.DeadIn() >25 and {SpellCooldown(mana_gem) >10 or ItemCharges(36799) ==0 } Spell(arcane_barrage)
+	if BuffStacks(arcane_charge) >=4 and BuffExpires(arcane_missiles_aura) and target.DeadIn() >25 Spell(arcane_barrage)
 	Spell(arcane_blast)
 }
 AddIcon mastery=1 help=offgcd
@@ -195,6 +194,7 @@ AddIcon mastery=3 help=main
 	if BuffPresent(fingers_of_frost_aura) and BuffRemains(fingers_of_frost_aura) <5 Spell(ice_lance)
 	if target.DeadIn() >=4 and BuffStacks(fingers_of_frost_aura) <2 and SpellCooldown(icy_veins) <GCD() and BuffRemains(invocation) >20 and BuffExpires(alter_time) Spell(frozen_orb)
 	if BuffPresent(fingers_of_frost_aura) and BuffRemains(fingers_of_frost_aura) <2 Spell(ice_lance)
+	if target.DebuffStacks(frostbolt) <3 Spell(frostbolt)
 	if BuffPresent(brain_freeze) and {BuffPresent(alter_time) or SpellCooldown(alter_time_activate) >4 } Spell(frostfire_bolt)
 	if BuffPresent(brain_freeze) and {BuffPresent(alter_time) or SpellCooldown(alter_time_activate) >4 } Spell(ice_lance)
 	if BuffPresent(fingers_of_frost_aura) Spell(ice_lance)
diff --git a/defaut/Paladin.lua b/defaut/Paladin.lua
index a2cb015..12a6103 100644
--- a/defaut/Paladin.lua
+++ b/defaut/Paladin.lua
@@ -14,15 +14,11 @@ Define(execution_sentence 114916)
   SpellAddTargetDebuff(execution_sentence execution_sentence=1)
 Define(exorcism 879)
   SpellInfo(exorcism holy=-1 cd=15 )
-Define(glyph_word_of_glory 115522)
-  SpellInfo(glyph_word_of_glory duration=6 )
-  SpellAddBuff(glyph_word_of_glory glyph_word_of_glory=1)
 Define(guardian_of_ancient_kings 86659)
   SpellInfo(guardian_of_ancient_kings duration=12 cd=180 )
   SpellAddBuff(guardian_of_ancient_kings guardian_of_ancient_kings=1)
 Define(hammer_of_wrath 24275)
   SpellInfo(hammer_of_wrath holy=-0 cd=6 )
-Define(harsh_word 130552)
 Define(inquisition 84963)
   SpellInfo(inquisition duration=10 holy=1 )
   SpellAddBuff(inquisition inquisition=1)
@@ -49,6 +45,7 @@ AddIcon mastery=3 help=main
 	if {BuffExpires(inquisition) or BuffRemains(inquisition) <=2 } and {HolyPower() >=3 } 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 Texture(Spell_nature_timestop)
 	Spell(exorcism)
 	Spell(crusader_strike)
 	Spell(judgment)
@@ -57,13 +54,12 @@ AddIcon mastery=3 help=main
 AddIcon mastery=3 help=offgcd
 {
 	if target.IsInterruptible() Spell(rebuke)
-	if {BuffExpires(glyph_word_of_glory) } and {HolyPower() >=3 } Spell(harsh_word)
 	if BuffPresent(inquisition) Spell(execution_sentence)
 }
 AddIcon mastery=3 help=cd
 {
-	if BuffPresent(inquisition) Spell(avenging_wrath)
 	if BuffPresent(inquisition) and BuffPresent(avenging_wrath) Spell(guardian_of_ancient_kings)
+	if BuffPresent(inquisition) Spell(avenging_wrath)
 	if BuffPresent(inquisition)  { 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 7ac280d..528e83d 100644
--- a/defaut/Pretre.lua
+++ b/defaut/Pretre.lua
@@ -53,13 +53,12 @@ AddIcon mastery=3 help=main
 		Spell(shadowform)
 	}
 	Spell(shadowform)
-	if BuffPresent(surge_of_darkness) and PreviousSpell(mind_blast) >=1 Spell(mind_spike)
 	if ShadowOrbs() ==3 Spell(devouring_plague)
 	if SpellCooldown(mind_blast) Spell(mind_blast)
 	if BuffPresent(surge_of_darkness) Spell(mind_spike)
-	if {not target.DebuffPresent(shadow_word_pain) or target.DebuffRemains(shadow_word_pain) <target.NextTick(shadow_word_pain) } Spell(shadow_word_pain)
+	if {not target.DebuffPresent(shadow_word_pain) or target.DebuffRemains(shadow_word_pain) <TickTime(shadow_word_pain) } Spell(shadow_word_pain)
 	if target.HealthPercent(less 20) Spell(shadow_word_death)
-	if {not target.DebuffPresent(vampiric_touch) or target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) +target.NextTick(vampiric_touch) } Spell(vampiric_touch)
+	if {not target.DebuffPresent(vampiric_touch) or target.DebuffRemains(vampiric_touch) <CastTime(vampiric_touch) +TickTime(vampiric_touch) } Spell(vampiric_touch)
 	Spell(halo_damage)
 	Spell(mind_flay)
 }
diff --git a/defaut/Voleur.lua b/defaut/Voleur.lua
index 9548aeb..ff119e4 100644
--- a/defaut/Voleur.lua
+++ b/defaut/Voleur.lua
@@ -99,7 +99,7 @@ AddIcon mastery=1 help=cd
 	if TalentPoints(preparation_talent) and 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) Spell(vanish)
+	if TimeInCombat() >10 and not BuffPresent(stealthed) and not BuffPresent(shadow_blades) Spell(vanish)
 	if {BuffPresent(bloodlust) or TimeInCombat() >60 } and BuffRemains(slice_and_dice) >=12000 Spell(shadow_blades)
 	Spell(vendetta)
 }
@@ -113,10 +113,9 @@ AddIcon mastery=2 help=main
 	if BuffRemains(slice_and_dice) <2 Spell(slice_and_dice)
 	if TicksRemain(rupture) <2 and ComboPoints() ==5 and BuffPresent(deep_insight) and target.DeadIn() >10 Spell(rupture)
 	if ComboPoints() ==5 and BuffPresent(deep_insight) Spell(eviscerate)
-	if TicksRemain(rupture) <2 and ComboPoints() ==5 and target.DeadIn() >10 Spell(rupture)
-	if ComboPoints() ==5 Spell(eviscerate)
-	if ComboPoints() <5 and TicksRemain(revealing_strike) <2 Spell(revealing_strike)
-	if ComboPoints() <5 Spell(sinister_strike)
+	if BuffStacks(anticipation) ==5 Spell(eviscerate)
+	if BuffStacks(anticipation) <5 and TicksRemain(revealing_strike) <2 Spell(revealing_strike)
+	if {not BuffPresent(shadow_blades) and BuffStacks(anticipation) <4 } or BuffStacks(anticipation) <5 Spell(sinister_strike)
 }
 AddIcon mastery=2 help=offgcd
 {
@@ -132,7 +131,7 @@ AddIcon mastery=2 help=cd
 	if TalentPoints(preparation_talent) and 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) Spell(vanish)
+	if TimeInCombat() >10 and not BuffPresent(stealthed) and not BuffPresent(shadow_blades) Spell(vanish)
 	if {BuffPresent(bloodlust) or TimeInCombat() >60 } and BuffRemains(slice_and_dice) >=12000 Spell(shadow_blades)
 	if Energy() <35 and BuffRemains(slice_and_dice) >4 and BuffExpires(adrenaline_rush) Spell(killing_spree)
 	if Energy() <35 Spell(adrenaline_rush)