Johnny C. Lam [05-22-14 - 12:38]
diff --git a/OvaleSimulationCraft.lua b/OvaleSimulationCraft.lua
index 448b393..89e3ef7 100644
--- a/OvaleSimulationCraft.lua
+++ b/OvaleSimulationCraft.lua
@@ -468,6 +468,10 @@ do
["^wind_shear$"] = "Interrupt()",
-- Warlock
["^service_pet$"] = "ServicePet()",
+ -- Warrior
+ ["^execute$"] = "Spell(execute usable=1)",
+ ["^heroic_leap$"] = "HeroicLeap()",
+ ["^raging_blow$"] = "RagingBlow()",
}
local scriptLine = {}
diff --git a/scripts/ovale_warrior.lua b/scripts/ovale_warrior.lua
index f948ff5..9397a9e 100644
--- a/scripts/ovale_warrior.lua
+++ b/scripts/ovale_warrior.lua
@@ -3,9 +3,9 @@ local OvaleScripts = Ovale.OvaleScripts
do
local name = "Ovale"
- local desc = "[5.2] Ovale: Arms, Fury, Protection"
+ local desc = "[5.4] Ovale: Arms, Fury, Protection"
local code = [[
-# Ovale warrior script by Sidoine for WoW 5.2.
+# Ovale warrior script based on SimulationCraft.
Include(ovale_items)
Include(ovale_racials)
@@ -15,191 +15,760 @@ AddCheckBox(opt_aoe L(AOE) default)
AddCheckBox(opt_icons_left "Left icons")
AddCheckBox(opt_icons_right "Right icons")
-AddCheckBox(heroic_leap_check SpellName(heroic_leap))
-AddCheckBox(sunder_armor_check SpellName(sunder_armor))
-AddCheckBox(showwait L(showwait) mastery=fury default)
+###
+### Arms
+###
+# Based on SimulationCraft profile "Warrior_Arms_T16H".
+# class=warrior
+# spec=arms
+# talents=http://us.battle.net/wow/en/tool/talent-calculator#Za!122011
+# glyphs=unending_rage/death_from_above/sweeping_strikes/resonating_power
-### Arms icons.
+AddFunction ArmsAoeActions
+{
+ #sweeping_strikes
+ Spell(sweeping_strikes)
+ #cleave,if=rage>110&active_enemies<=4
+ if Rage() > { MaxRage() - 10 } and Enemies() <= 4 Spell(cleave)
+ #bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
+ if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
+ #dragon_roar,if=enabled&debuff.colossus_smash.down
+ if TalentPoints(dragon_roar_talent) and target.DebuffExpires(colossus_smash_debuff) Spell(dragon_roar)
+ #colossus_smash,if=debuff.colossus_smash.remains<1
+ if target.DebuffRemains(colossus_smash_debuff) < 1 Spell(colossus_smash)
+ #thunder_clap,target=2,if=dot.deep_wounds.attack_power*1.1<stat.attack_power
+ if target.DebuffAttackPower(deep_wounds_debuff) * 1.1 < AttackPower() Spell(thunder_clap)
+ #mortal_strike,if=active_enemies=2|rage<50
+ if Enemies() == 2 or Rage() < 50 Spell(mortal_strike)
+ #execute,if=buff.sudden_execute.down&active_enemies=2
+ if BuffExpires(sudden_execute_buff) and Enemies() == 2 Spell(execute usable=1)
+ #slam,if=buff.sweeping_strikes.up&debuff.colossus_smash.up
+ if BuffPresent(sweeping_strikes_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(slam)
+ #overpower,if=active_enemies=2
+ if Enemies() == 2 Spell(overpower)
+ #slam,if=buff.sweeping_strikes.up
+ if BuffPresent(sweeping_strikes_buff) Spell(slam)
+ #battle_shout
+ Spell(battle_shout)
+}
-AddIcon mastery=arms size=small checkboxon=opt_icons_left {}
-AddIcon mastery=arms size=small checkboxon=opt_icons_left {}
+AddFunction ArmsSingleTargetActions
+{
+ #heroic_strike,if=rage>115|(debuff.colossus_smash.up&rage>60&set_bonus.tier16_2pc_melee)
+ if Rage() > { MaxRage() - 5 } or { target.DebuffPresent(colossus_smash_debuff) and Rage() > 60 and ArmorSetBonus(T16_melee 2) } Spell(heroic_strike)
+ #mortal_strike,if=dot.deep_wounds.remains<1.0|buff.enrage.down|rage<10
+ if target.DebuffRemains(deep_wounds_debuff) < 1 or BuffExpires(enrage_buff) or Rage() < 10 Spell(mortal_strike)
+ #colossus_smash,if=debuff.colossus_smash.remains<1.0
+ if target.DebuffRemains(colossus_smash_debuff) < 1 Spell(colossus_smash)
+ #mortal_strike
+ Spell(mortal_strike)
+ #storm_bolt,if=enabled&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #execute,if=buff.sudden_execute.down|buff.taste_for_blood.down|rage>90|target.time_to_die<12
+ if BuffExpires(sudden_execute_buff) or BuffExpires(taste_for_blood_buff) or Rage() > 90 or target.TimeToDie() < 12 Spell(execute usable=1)
+ #slam,if=target.health.pct>=20&(trinket.stacking_stat.crit.stack>=10|buff.recklessness.up)
+ if target.HealthPercent() >= 20 and { BuffStacks(trinket_stacking_stat_crit_buff) >= 10 or BuffPresent(recklessness_buff) } Spell(slam)
+ #overpower,if=target.health.pct>=20&rage<100|buff.sudden_execute.up
+ if { target.HealthPercent() >= 20 and Rage() < { MaxRage() - 20 } } or BuffPresent(sudden_execute_buff) Spell(overpower)
+ #execute
+ Spell(execute usable=1)
+ #slam,if=target.health.pct>=20
+ if target.HealthPercent() >= 20 Spell(slam)
+ #heroic_throw
+ Spell(heroic_throw)
+ #battle_shout
+ Spell(battle_shout)
+}
-AddIcon mastery=arms help=offgcd
+AddFunction ArmsSingleTargetShortCdActions
{
- 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)
+ unless { { Rage() > { MaxRage() - 5 } or { target.DebuffPresent(colossus_smash_debuff) and Rage() > 60 and ArmorSetBonus(T16_melee 2) } } and Spell(heroic_strike) }
+ or { target.DebuffRemains(deep_wounds_debuff) < 1 or BuffExpires(enrage_buff) or Rage() < 10 and Spell(mortal_strike) }
+ or { target.DebuffRemains(colossus_smash_debuff) < 1 and Spell(colossus_smash) }
+ {
+ #bladestorm,if=enabled,interrupt_if=!cooldown.colossus_smash.remains
+ if TalentPoints(bladestorm_talent) Spell(bladestorm)
+
+ unless Spell(mortal_strike)
+ or { TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) and Spell(storm_bolt) }
+ {
+ #dragon_roar,if=enabled&debuff.colossus_smash.down
+ if TalentPoints(dragon_roar_talent) and target.DebuffExpires(colossus_smash_debuff) Spell(dragon_roar)
+ }
+ }
}
-AddIcon mastery=arms help=main
+AddFunction ArmsDefaultActions
+{
+ #auto_attack
+ #berserker_rage,if=buff.enrage.remains<0.5
+ if BuffRemains(enrage_buff) < 0.5 Spell(berserker_rage)
+ #run_action_list,name=aoe,if=active_enemies>=2
+ #if Enemies() >= 2 ArmsAoeActions()
+ #run_action_list,name=single_target,if=active_enemies<2
+ #if Enemies() < 2 ArmsSingleTargetActions()
+}
+
+AddFunction ArmsDefaultShortCdActions
{
- if not InCombat()
+ #bloodbath,if=enabled&(debuff.colossus_smash.remains>0.1|cooldown.colossus_smash.remains<5|target.time_to_die<=20)
+ if TalentPoints(bloodbath_talent) and { target.DebuffRemains(colossus_smash_debuff) > 0.1 or SpellCooldown(colossus_smash) < 5 or target.TimeToDie() <= 20 } Spell(bloodbath)
+
+ unless { BuffRemains(enrage_buff) < 0.5 and Spell(berserker_rage) }
{
- unless Stance(1) Spell(battle_stance)
+ #heroic_leap,if=debuff.colossus_smash.up
+ if target.DebuffPresent(colossus_smash_debuff) HeroicLeap()
}
- 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)
+}
+
+AddFunction ArmsDefaultCdActions
+{
+ #mogu_power_potion,if=(target.health.pct<20&buff.recklessness.up)|buff.bloodlust.react|target.time_to_die<=25
+ if { target.HealthPercent() < 20 and BuffPresent(recklessness_buff) } or BuffPresent(burst_haste any=1) or target.TimeToDie() <= 25 UsePotionStrength()
+ #recklessness,if=!talent.bloodbath.enabled&((cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5)&(target.time_to_die>(192*buff.cooldown_reduction.value)|target.health.pct<20))|buff.bloodbath.up&(target.time_to_die>(192*buff.cooldown_reduction.value)|target.health.pct<20)|target.time_to_die<=12
+ if not TalentPoints(bloodbath_talent) and { { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 } and { target.TimeToDie() > { 192 * BuffAmount(cooldown_reduction_strength_buff) } or target.HealthPercent() < 20 } } or BuffPresent(bloodbath_buff) and { target.TimeToDie() > { 192 * BuffAmount(cooldown_reduction_strength_buff) } or target.HealthPercent() < 20 } or target.TimeToDie() <= 12 Spell(recklessness)
+ #avatar,if=enabled&(buff.recklessness.up|target.time_to_die<=25)
+ if TalentPoints(avatar_talent) and { BuffPresent(recklessness_buff) or target.TimeToDie() <= 25 } Spell(avatar)
+ #skull_banner,if=buff.skull_banner.down&(((cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5)&target.time_to_die>192&buff.cooldown_reduction.up)|buff.recklessness.up)
+ if BuffExpires(skull_banner_buff) and { { { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 } and target.TimeToDie() > 192 and BuffPresent(cooldown_reduction_strength_buff) } or BuffPresent(recklessness_buff) } Spell(skull_banner)
+ #use_item,slot=hands,if=!talent.bloodbath.enabled&debuff.colossus_smash.up|buff.bloodbath.up
+ if not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) or BuffPresent(bloodbath_buff) UseItemActions()
+ #blood_fury,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(blood_fury)
+ #berserking,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(berserking)
+ #arcane_torrent,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(arcane_torrent)
+}
+
+AddFunction ArmsPrecombatActions
+{
+ #flask,type=winters_bite
+ #food,type=black_pepper_ribs_and_shrimp
+ #snapshot_stats
+ #stance,choose=battle
+ if not Stance(warrior_battle_stance) Spell(battle_stance)
+ #battle_shout
Spell(battle_shout)
- Spell(heroic_throw)
+}
+
+AddFunction ArmsPrecombatCdActions
+{
+ if Stance(warrior_battle_stance)
+ {
+ #mogu_power_potion
+ UsePotionStrength()
+ }
+}
+
+### Arms icons.
+
+AddIcon mastery=arms size=small checkboxon=opt_icons_left
+{
+ Spell(vigilance)
+ Spell(demoralizing_banner)
+ Spell(rallying_cry)
+}
+
+AddIcon mastery=arms size=small checkboxon=opt_icons_left
+{
+ if TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(impending_victory usable=1)
+ if not TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(victory_rush usable=1)
+ if TalentPoints(enraged_regeneration_talent) Spell(enraged_regeneration)
+}
+
+AddIcon mastery=arms help=shortcd
+{
+ ArmsDefaultShortCdActions()
+ ArmsSingleTargetShortCdActions()
+}
+
+AddIcon mastery=arms help=main
+{
+ if InCombat(no) ArmsPrecombatActions()
+ ArmsDefaultActions()
+ ArmsSingleTargetActions()
}
AddIcon mastery=arms help=aoe checkboxon=opt_aoe
{
- Spell(dragon_roar)
- Spell(shockwave)
- Spell(whirlwind)
- Spell(sweeping_strikes)
- if Rage() >=90 Spell(cleave)
- Spell(bloodthirst)
+ if InCombat(no) ArmsPrecombatActions()
+ ArmsDefaultActions()
+ ArmsAoeActions()
}
AddIcon mastery=arms 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) UseItemActions()
+ Interrupt()
+ UseRacialInterruptActions()
+
+ if InCombat(no) ArmsPrecombatCdActions()
+ ArmsDefaultCdActions()
}
-AddIcon mastery=arms size=small checkboxon=opt_icons_right {}
+AddIcon mastery=arms size=small checkboxon=opt_icons_right
+{
+ Spell(die_by_the_sword)
+ Spell(shield_wall)
+}
AddIcon mastery=arms size=small checkboxon=opt_icons_right
{
+ #shattering_throw,if=cooldown.colossus_smash.remains>5
+ if target.DebuffExpires(shattering_throw_debuff) and SpellCooldown(colossus_smash) > 5 Spell(shattering_throw)
+
UseItemActions()
}
-### Fury icons.
-
-AddIcon mastery=fury size=small checkboxon=opt_icons_left {}
-AddIcon mastery=fury size=small checkboxon=opt_icons_left {}
+###
+### Fury
+###
+# Based on SimulationCraft profile "Warrior_Fury_1h_T16H".
+# class=warrior
+# spec=fury
+# talents=http://us.battle.net/wow/en/tool/talent-calculator#ZZ!122212
+# glyphs=unending_rage/death_from_above/bull_rush
-AddIcon mastery=fury help=offgcd
+AddFunction FuryPrecombatActions
{
- 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)
+ #flask,type=winters_bite
+ #food,type=black_pepper_ribs_and_shrimp
+ #snapshot_stats
+ #stance,choose=battle
+ if not Stance(warrior_battle_stance) Spell(battle_stance)
+ #battle_shout
+ Spell(battle_shout)
}
-AddIcon mastery=fury help=main
+AddFunction FuryPrecombatCdActions
{
- if not InCombat()
+ if Stance(warrior_battle_stance)
{
- unless Stance(1) Spell(battle_stance)
+ #mogu_power_potion
+ UsePotionStrength()
}
- 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)
+}
+
+AddFunction FuryDefaultCdActions
+{
+ #mogu_power_potion,if=(target.health.pct<20&buff.recklessness.up)|target.time_to_die<=25
+ if { target.HealthPercent() < 20 and BuffPresent(recklessness_buff) } or target.TimeToDie() <= 25 UsePotionStrength()
+ #recklessness,if=!talent.bloodbath.enabled&((cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5)&(target.time_to_die>(192*buff.cooldown_reduction.value)|target.health.pct<20))|buff.bloodbath.up&(target.time_to_die>(192*buff.cooldown_reduction.value)|target.health.pct<20)|target.time_to_die<=12
+ if not TalentPoints(bloodbath_talent) and { { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 } and { target.TimeToDie() > { 192 * BuffAmount(cooldown_reduction_strength_buff) } or target.HealthPercent() < 20 } } or BuffPresent(bloodbath_buff) and { target.TimeToDie() > { 192 * BuffAmount(cooldown_reduction_strength_buff) } or target.HealthPercent() < 20 } or target.TimeToDie() <= 12 Spell(recklessness)
+ #avatar,if=enabled&(buff.recklessness.up|target.time_to_die<=25)
+ if TalentPoints(avatar_talent) and { BuffPresent(recklessness_buff) or target.TimeToDie() <= 25 } Spell(avatar)
+ #skull_banner,if=buff.skull_banner.down&(((cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5)&target.time_to_die>192&buff.cooldown_reduction.up)|buff.recklessness.up)
+ if BuffExpires(skull_banner_buff) and { { { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 } and target.TimeToDie() > 192 and BuffPresent(cooldown_reduction_strength_buff) } or BuffPresent(recklessness_buff) } Spell(skull_banner)
+ #use_item,slot=hands,if=!talent.bloodbath.enabled&debuff.colossus_smash.up|buff.bloodbath.up
+ if not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) or BuffPresent(bloodbath_buff) UseItemActions()
+ #blood_fury,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(blood_fury)
+ #berserking,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(berserking)
+ #arcane_torrent,if=buff.cooldown_reduction.down&(buff.bloodbath.up|(!talent.bloodbath.enabled&debuff.colossus_smash.up))|buff.cooldown_reduction.up&buff.recklessness.up
+ if BuffExpires(cooldown_reduction_strength_buff) and { BuffPresent(bloodbath_buff) or { not TalentPoints(bloodbath_talent) and target.DebuffPresent(colossus_smash_debuff) } } or BuffPresent(cooldown_reduction_strength_buff) and BuffPresent(recklessness_buff) Spell(arcane_torrent)
+}
+
+AddFunction FuryTwoTargetsActions
+{
+ #bloodbath,if=enabled&((!talent.bladestorm.enabled&(cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5|target.time_to_die<=20))|(talent.bladestorm.enabled))
+ #if TalentPoints(bloodbath_talent) and { { not TalentPoints(bladestorm_talent) and { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 or target.TimeToDie() <= 20 } } or { TalentPoints(bladestorm_talent) } } Spell(bloodbath)
+ #berserker_rage,if=(talent.bladestorm.enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&!cooldown.bladestorm.remains&(!talent.storm_bolt.enabled|(talent.storm_bolt.enabled&!debuff.colossus_smash.up)))|(!talent.bladestorm.enabled&buff.enrage.remains<1&cooldown.bloodthirst.remains>1)
+ if { TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and not SpellCooldown(bladestorm) and { not TalentPoints(storm_bolt_talent) or { TalentPoints(storm_bolt_talent) and not target.DebuffPresent(colossus_smash_debuff) } } } or { not TalentPoints(bladestorm_talent) and BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 } Spell(berserker_rage)
+ #cleave,if=(rage>=60&debuff.colossus_smash.up)|rage>110
+ if { Rage() >= 60 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > { MaxRage() - 10 } Spell(cleave)
+ #heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
+ #bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&(!talent.storm_bolt.enabled|(talent.storm_bolt.enabled&!debuff.colossus_smash.up))
+ if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and { not TalentPoints(storm_bolt_talent) or { TalentPoints(storm_bolt_talent) and not target.DebuffPresent(colossus_smash_debuff) } } Spell(bladestorm)
+ #dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
+ if TalentPoints(dragon_roar_talent) and { not target.DebuffPresent(colossus_smash_debuff) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } } Spell(dragon_roar)
+ #colossus_smash
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)
+ #bloodthirst,cycle_targets=1,if=dot.deep_wounds.remains<5
+ if target.DebuffRemains(deep_wounds_debuff) < 5 Spell(bloodthirst)
+ #storm_bolt,if=enabled&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #bloodthirst
+ Spell(bloodthirst)
+ #wait,sec=cooldown.bloodthirst.remains,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)&cooldown.bloodthirst.remains<=1
+ if not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } Spell(bloodthirst wait=1)
+ #raging_blow,if=buff.meat_cleaver.up
+ if BuffPresent(meat_cleaver_buff) RagingBlow()
+ #whirlwind,if=!buff.meat_cleaver.up
+ if not BuffPresent(meat_cleaver_buff) Spell(whirlwind)
+ #shockwave,if=enabled
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)
+ #execute
+ Spell(execute usable=1)
+ #battle_shout
+ Spell(battle_shout)
+ #heroic_throw
+ Spell(heroic_throw)
}
-AddIcon mastery=fury help=aoe checkboxon=opt_aoe
+AddFunction FuryThreeTargetsActions
{
+ #bloodbath,if=enabled
+ #if TalentPoints(bloodbath_talent) Spell(bloodbath)
+ #berserker_rage,if=(talent.bladestorm.enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&!cooldown.bladestorm.remains)|(!talent.bladestorm.enabled&buff.enrage.remains<1&cooldown.bloodthirst.remains>1)
+ if { TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and not SpellCooldown(bladestorm) } or { not TalentPoints(bladestorm_talent) and BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 } Spell(berserker_rage)
+ #cleave,if=(rage>=70&debuff.colossus_smash.up)|rage>90
+ if { Rage() >= 70 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > 90 Spell(cleave)
+ #heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
+ #bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
+ if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
+ #dragon_roar,if=enabled&!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled)
+ if TalentPoints(dragon_roar_talent) and not target.DebuffPresent(colossus_smash_debuff) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(dragon_roar)
+ #bloodthirst,cycle_targets=1,if=!dot.deep_wounds.ticking
+ if not target.DebuffPresent(deep_wounds_debuff) Spell(bloodthirst)
+ #colossus_smash
+ Spell(colossus_smash)
+ #storm_bolt,if=enabled&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #raging_blow,if=buff.meat_cleaver.stack=2
+ if BuffStacks(meat_cleaver_buff) == 2 RagingBlow()
+ #whirlwind
+ Spell(whirlwind)
+ #shockwave,if=enabled
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ #raging_blow
+ RagingBlow()
+ #battle_shout
+ Spell(battle_shout)
+ #heroic_throw
+ Spell(heroic_throw)
+}
- Spell(dragon_roar)
- Spell(shockwave)
- if BuffStacks(meat_cleaver) and BuffStacks(raging_blow_aura) Spell(raging_blow)
+AddFunction FuryAoeActions
+{
+ #bloodbath,if=enabled
+ #if TalentPoints(bloodbath_talent) Spell(bloodbath)
+ #berserker_rage,if=(talent.bladestorm.enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&!cooldown.bladestorm.remains)|(!talent.bladestorm.enabled&buff.enrage.remains<1&cooldown.bloodthirst.remains>1)
+ if { TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and not SpellCooldown(bladestorm) } or { not TalentPoints(bladestorm_talent) and BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 } Spell(berserker_rage)
+ #cleave,if=rage>90
+ if Rage() > 90 Spell(cleave)
+ #heroic_leap,if=buff.enrage.up
+ if BuffPresent(enrage_buff) HeroicLeap()
+ #bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
+ if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
+ #bloodthirst,cycle_targets=1,if=!dot.deep_wounds.ticking&buff.enrage.down
+ if not target.DebuffPresent(deep_wounds_debuff) and BuffExpires(enrage_buff) Spell(bloodthirst)
+ #raging_blow,if=buff.meat_cleaver.stack=3
+ if BuffStacks(meat_cleaver_buff) == 3 RagingBlow()
+ #whirlwind
Spell(whirlwind)
- if Rage() >=90 Spell(cleave)
+ #dragon_roar,if=enabled&debuff.colossus_smash.down&(buff.bloodbath.up|!talent.bloodbath.enabled)
+ if TalentPoints(dragon_roar_talent) and target.DebuffExpires(colossus_smash_debuff) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(dragon_roar)
+ #bloodthirst,cycle_targets=1,if=!dot.deep_wounds.ticking
+ if not target.DebuffPresent(deep_wounds_debuff) Spell(bloodthirst)
+ #colossus_smash
+ Spell(colossus_smash)
+ #storm_bolt,if=enabled
+ if TalentPoints(storm_bolt_talent) Spell(storm_bolt)
+ #shockwave,if=enabled
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ #battle_shout
+ Spell(battle_shout)
+}
+
+AddFunction FuryOneHandSingleTargetActions
+{
+ #berserker_rage,if=buff.enrage.remains<1&cooldown.bloodthirst.remains>1
+ if BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 Spell(berserker_rage)
+ #heroic_leap,if=debuff.colossus_smash.up
+ if target.DebuffPresent(colossus_smash_debuff) HeroicLeap()
+ #storm_bolt,if=enabled&buff.cooldown_reduction.up&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #raging_blow,if=buff.raging_blow.stack=2&debuff.colossus_smash.up&target.health.pct>=20
+ if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) and target.HealthPercent() >= 20 RagingBlow()
+ #storm_bolt,if=enabled&buff.cooldown_reduction.down&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #bloodthirst,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)
+ if not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } Spell(bloodthirst)
+ #wild_strike,if=buff.bloodsurge.react&target.health.pct>=20&cooldown.bloodthirst.remains<=1
+ if BuffPresent(bloodsurge_buff) and target.HealthPercent() >= 20 and SpellCooldown(bloodthirst) <= 1 Spell(wild_strike)
+ #wait,sec=cooldown.bloodthirst.remains,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)&cooldown.bloodthirst.remains<=1
+ if not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } Spell(bloodthirst wait=1)
+ #colossus_smash
+ Spell(colossus_smash)
+ #storm_bolt,if=enabled&buff.cooldown_reduction.down
+ if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) Spell(storm_bolt)
+ #execute,if=debuff.colossus_smash.up|rage>70|target.time_to_die<12
+ if target.DebuffPresent(colossus_smash_debuff) or Rage() > 70 or target.TimeToDie() < 12 Spell(execute usable=1)
+ #raging_blow,if=target.health.pct<20|buff.raging_blow.stack=2|(debuff.colossus_smash.up|(cooldown.bloodthirst.remains>=1&buff.raging_blow.remains<=3))
+ if target.HealthPercent() < 20 or BuffStacks(raging_blow_buff) == 2 or { target.DebuffPresent(colossus_smash_debuff) or { SpellCooldown(bloodthirst) >= 1 and BuffRemains(raging_blow_buff) <= 3 } } RagingBlow()
+ #wild_strike,if=buff.bloodsurge.up
+ if BuffPresent(bloodsurge_buff) Spell(wild_strike)
+ #raging_blow,if=cooldown.colossus_smash.remains>=3
+ if SpellCooldown(colossus_smash) >= 3 RagingBlow()
+ #heroic_throw,if=debuff.colossus_smash.down&rage<60
+ if target.DebuffExpires(colossus_smash_debuff) and Rage() < 60 Spell(heroic_throw)
+ #battle_shout,if=rage<70&!debuff.colossus_smash.up
+ if Rage() < 70 and not target.DebuffPresent(colossus_smash_debuff) Spell(battle_shout)
+ #wild_strike,if=debuff.colossus_smash.up&target.health.pct>=20
+ if target.DebuffPresent(colossus_smash_debuff) and target.HealthPercent() >= 20 Spell(wild_strike)
+ #battle_shout,if=rage<70
+ if Rage() < 70 Spell(battle_shout)
+ #wild_strike,if=cooldown.colossus_smash.remains>=2&rage>=70&target.health.pct>=20
+ if SpellCooldown(colossus_smash) >= 2 and Rage() >= 70 and target.HealthPercent() >= 20 Spell(wild_strike)
+ #impending_victory,if=enabled&target.health.pct>=20&cooldown.colossus_smash.remains>=2
+ if TalentPoints(impending_victory_talent) and target.HealthPercent() >= 20 and SpellCooldown(colossus_smash) >= 2 Spell(impending_victory)
+}
+
+AddFunction FuryOneHandSingleTargetShortCdActions
+{
+ #bloodbath,if=enabled&(cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5|target.time_to_die<=20)
+ if TalentPoints(bloodbath_talent) and { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 or target.TimeToDie() <= 20 } Spell(bloodbath)
+
+ unless { BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 and Spell(berserker_rage) }
+ {
+ #heroic_strike,if=((debuff.colossus_smash.up&rage>=40)&target.health.pct>=20)|rage>=100&buff.enrage.up
+ if { { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 40 } and target.HealthPercent() >= 20 } or Rage() >= { MaxRage() - 20 } and BuffPresent(enrage_buff) Spell(heroic_strike)
+
+ unless { target.DebuffPresent(colossus_smash_debuff) and HeroicLeap() }
+ or { TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) and Spell(storm_bolt) }
+ or { BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) and target.HealthPercent() >= 20 and RagingBlow() }
+ or { TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) and Spell(storm_bolt) }
+ or { BuffPresent(bloodsurge_buff) and target.HealthPercent() >= 20 and SpellCooldown(bloodthirst) <= 1 and Spell(wild_strike) }
+ or { not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } and SpellCooldown(bloodthirst) <= 1 }
+ {
+ #dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
+ if TalentPoints(dragon_roar_talent) and { not target.DebuffPresent(colossus_smash_debuff) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } } Spell(dragon_roar)
+
+ unless Spell(colossus_smash)
+ or { TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and Spell(storm_bolt) }
+ or { { target.DebuffPresent(colossus_smash_debuff) or Rage() > 70 or target.TimeToDie() < 12 } and Spell(execute usable=1) }
+ or { { target.HealthPercent() < 20 or BuffStacks(raging_blow_buff) == 2 or { target.DebuffPresent(colossus_smash_debuff) or { SpellCooldown(bloodthirst) >= 1 and BuffRemains(raging_blow_buff) <= 3 } } } and RagingBlow() }
+ {
+ #bladestorm,if=enabled
+ if TalentPoints(bladestorm_talent) Spell(bladestorm)
+
+ unless { BuffPresent(bloodsurge_buff) and Spell(wild_strike) }
+ or { SpellCooldown(colossus_smash) >= 3 and RagingBlow() }
+ {
+ #shockwave,if=enabled
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ }
+ }
+ }
+ }
+}
+
+# Based on SimulationCraft profile "Warrior_Fury_2h_T16H".
+# class=warrior
+# spec=fury
+# talents=http://us.battle.net/wow/en/tool/talent-calculator#ZZ!122012
+# glyphs=unending_rage/death_from_above/bull_rush
+
+AddFunction FuryTwoHandSingleTargetActions
+{
+ #berserker_rage,if=buff.enrage.remains<1&cooldown.bloodthirst.remains>1
+ if BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 Spell(berserker_rage)
+ #heroic_leap,if=debuff.colossus_smash.up&buff.enrage.up
+ if target.DebuffPresent(colossus_smash_debuff) and BuffPresent(enrage_buff) HeroicLeap()
+ #bloodthirst,if=!buff.enrage.up
+ if not BuffPresent(enrage_buff) Spell(bloodthirst)
+ #storm_bolt,if=enabled&buff.cooldown_reduction.up&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #raging_blow,if=buff.raging_blow.stack=2&debuff.colossus_smash.up
+ if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) RagingBlow()
+ #storm_bolt,if=enabled&buff.cooldown_reduction.down&debuff.colossus_smash.up
+ if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
+ #bloodthirst
Spell(bloodthirst)
+ #wild_strike,if=buff.bloodsurge.react&cooldown.bloodthirst.remains<=1&cooldown.bloodthirst.remains>0.3
+ if BuffPresent(bloodsurge_buff) and SpellCooldown(bloodthirst) <= 1 and SpellCooldown(bloodthirst) > 0.3 Spell(wild_strike)
+ #wait,sec=cooldown.bloodthirst.remains,if=!(debuff.colossus_smash.up&rage>=30&buff.enrage.up)&cooldown.bloodthirst.remains<=1
+ if not { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } and SpellCooldown(bloodthirst) <= 1 Spell(bloodthirst wait=1)
+ #colossus_smash
+ Spell(colossus_smash)
+ #storm_bolt,if=enabled&buff.cooldown_reduction.down
+ if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) Spell(storm_bolt)
+ #execute,if=buff.raging_blow.stack<2&(((rage>70&!debuff.colossus_smash.up)|debuff.colossus_smash.up)|trinket.proc.strength.up)|target.time_to_die<5
+ if BuffStacks(raging_blow_buff) < 2 and { { { Rage() > 70 and not target.DebuffPresent(colossus_smash_debuff) } or target.DebuffPresent(colossus_smash_debuff) } or BuffPresent(trinket_proc_strength_buff) } or target.TimeToDie() < 5 Spell(execute usable=1)
+ #berserker_rage,if=buff.raging_blow.stack<=1&target.health.pct>=20
+ if BuffStacks(raging_blow_buff) <= 1 and target.HealthPercent() >= 20 Spell(berserker_rage)
+ #raging_blow,if=buff.raging_blow.stack=2|debuff.colossus_smash.up|buff.raging_blow.remains<=3
+ if BuffStacks(raging_blow_buff) == 2 or target.DebuffPresent(colossus_smash_debuff) or BuffRemains(raging_blow_buff) <= 3 RagingBlow()
+ #raging_blow,if=cooldown.colossus_smash.remains>=1
+ if SpellCooldown(colossus_smash) >= 1 RagingBlow()
+ #wild_strike,if=buff.bloodsurge.up
+ if BuffPresent(bloodsurge_buff) Spell(wild_strike)
+ #heroic_throw,if=debuff.colossus_smash.down&rage<60
+ if target.DebuffExpires(colossus_smash_debuff) and Rage() < 60 Spell(heroic_throw)
+ #wild_strike,if=debuff.colossus_smash.up
+ if target.DebuffPresent(colossus_smash_debuff) Spell(wild_strike)
+ #battle_shout,if=rage<70
+ if Rage() < 70 Spell(battle_shout)
+ #impending_victory,if=enabled&cooldown.colossus_smash.remains>=1.5
+ if TalentPoints(impending_victory_talent) and SpellCooldown(colossus_smash) >= 1.5 Spell(impending_victory)
+ #wild_strike,if=cooldown.colossus_smash.remains>=2&rage>=70
+ if SpellCooldown(colossus_smash) >= 2 and Rage() >= 70 Spell(wild_strike)
+}
+AddFunction FuryTwoHandSingleTargetShortCdActions
+{
+ #bloodbath,if=enabled&(cooldown.colossus_smash.remains<2|debuff.colossus_smash.remains>=5|target.time_to_die<=20)
+ if TalentPoints(bloodbath_talent) and { SpellCooldown(colossus_smash) < 2 or target.DebuffRemains(colossus_smash_debuff) >= 5 or target.TimeToDie() <= 20 } Spell(bloodbath)
+
+ unless { BuffRemains(enrage_buff) < 1 and SpellCooldown(bloodthirst) > 1 and Spell(berserker_rage) }
+ {
+ #heroic_strike,if=(debuff.colossus_smash.up&rage>=40|rage>=100)&buff.enrage.up
+ if { { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 40 } or Rage() >= { MaxRage() - 20 } } and BuffPresent(enrage_buff) Spell(heroic_strike)
+
+ unless { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(enrage_buff) and HeroicLeap() }
+ or { not BuffPresent(enrage_buff) and Spell(bloodthirst) }
+ or { TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) and Spell(storm_bolt) }
+ or { BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) and RagingBlow() }
+ or { TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) and Spell(storm_bolt) }
+ {
+ #dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
+ if TalentPoints(dragon_roar_talent) and { not target.DebuffPresent(colossus_smash_debuff) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } } Spell(dragon_roar)
+
+ unless Spell(bloodthirst)
+ or { BuffPresent(bloodsurge_buff) and SpellCooldown(bloodthirst) <= 1 and SpellCooldown(bloodthirst) > 0.3 and Spell(wild_strike) }
+ or { not { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } and SpellCooldown(bloodthirst) <= 1 }
+ or Spell(colossus_smash)
+ or { TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and Spell(storm_bolt) }
+ or { { BuffStacks(raging_blow_buff) < 2 and { { { Rage() > 70 and not target.DebuffPresent(colossus_smash_debuff) } or target.DebuffPresent(colossus_smash_debuff) } or BuffPresent(trinket_proc_strength_buff) } or target.TimeToDie() < 5 } and Spell(execute usable=1) }
+ or { BuffStacks(raging_blow_buff) <= 1 and target.HealthPercent() >= 20 and Spell(berserker_rage) }
+ or { { BuffStacks(raging_blow_buff) == 2 or target.DebuffPresent(colossus_smash_debuff) or BuffRemains(raging_blow_buff) <= 3 } and RagingBlow() }
+ {
+ #bladestorm,if=enabled,interrupt_if=cooldown.bloodthirst.remains<1
+ if TalentPoints(bladestorm_talent) Spell(bladestorm)
+
+ unless { SpellCooldown(colossus_smash) >= 1 and RagingBlow() }
+ or { BuffPresent(bloodsurge_buff) and Spell(wild_strike) }
+ {
+ #shockwave,if=enabled
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ }
+ }
+ }
+ }
+}
+
+### Fury icons.
+
+AddIcon mastery=fury size=small checkboxon=opt_icons_left
+{
+ Spell(vigilance)
+ Spell(demoralizing_banner)
+ Spell(rallying_cry)
+}
+
+AddIcon mastery=fury size=small checkboxon=opt_icons_left
+{
+ if TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(impending_victory usable=1)
+ if not TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(victory_rush usable=1)
+ if TalentPoints(enraged_regeneration_talent) Spell(enraged_regeneration)
+}
+
+AddIcon mastery=fury help=shortcd
+{
+ if HasWeapon(main type=1h) FuryOneHandSingleTargetShortCdActions()
+ if HasWeapon(main type=2h) FuryTwoHandSingleTargetShortCdActions()
+}
+
+AddIcon mastery=fury help=main
+{
+ if InCombat(no) FuryPrecombatActions()
+ if HasWeapon(main type=1h) FuryOneHandSingleTargetActions()
+ if HasWeapon(main type=2h) FuryTwoHandSingleTargetActions()
+}
+
+AddIcon mastery=fury help=aoe checkboxon=opt_aoe
+{
+ if InCombat(no) FuryPrecombatActions()
+ #run_action_list,name=two_targets,if=active_enemies=2
+ if Enemies() <= 2 FuryTwoTargetsActions()
+ #run_action_list,name=three_targets,if=active_enemies=3
+ if Enemies() == 3 FuryThreeTargetsActions()
+ #run_action_list,name=aoe,if=active_enemies>3
+ if Enemies() > 3 FuryAoeActions()
}
AddIcon mastery=fury 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) } UseItemActions()
+ Interrupt()
+ UseRacialInterruptActions()
+
+ if InCombat(no) FuryPrecombatCdActions()
+ FuryDefaultCdActions()
}
-AddIcon mastery=fury size=small checkboxon=opt_icons_right {}
+AddIcon mastery=fury size=small checkboxon=opt_icons_right
+{
+ Spell(die_by_the_sword)
+ Spell(shield_wall)
+}
AddIcon mastery=fury size=small checkboxon=opt_icons_right
{
+ #shattering_throw,if=cooldown.colossus_smash.remains>5
+ if target.DebuffExpires(shattering_throw_debuff) and SpellCooldown(colossus_smash) > 5 Spell(shattering_throw)
+
UseItemActions()
}
-### Protection icons.
+###
+### Protection
+###
+# Based on SimulationCraft profile "Warrior_Protection_T16H".
+# class=warrior
+# spec=protection
+# talents=http://us.battle.net/wow/en/tool/talent-calculator#Zb!.00110
+# glyphs=unending_rage/hold_the_line/heavy_repercussions
-AddIcon mastery=protection size=small checkboxon=opt_icons_left {}
-AddIcon mastery=protection size=small checkboxon=opt_icons_left {}
+AddFunction ProtectionDpsCdsActions
+{
+ #avatar,if=enabled
+ if TalentPoints(avatar_talent) Spell(avatar)
+ #bloodbath,if=enabled
+ if TalentPoints(bloodbath_talent) Spell(bloodbath)
+ #blood_fury
+ Spell(blood_fury)
+ #berserking
+ Spell(berserking)
+ #arcane_torrent
+ Spell(arcane_torrent)
+ #dragon_roar,if=enabled
+ if TalentPoints(dragon_roar_talent) Spell(dragon_roar)
+ #shattering_throw
+ Spell(shattering_throw)
+ #skull_banner
+ Spell(skull_banner)
+ #recklessness
+ Spell(recklessness)
+ #storm_bolt,if=enabled
+ if TalentPoints(storm_bolt_talent) Spell(storm_bolt)
+ #shockwave,if=enabled
+ if TalentPoints(shockwave_talent) Spell(shockwave)
+ #bladestorm,if=enabled
+ if TalentPoints(bladestorm_talent) Spell(bladestorm)
+}
-AddIcon mastery=protection help=offgcd
+AddFunction ProtectionNormalRotationActions
{
- 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)
+ #shield_slam
+ Spell(shield_slam)
+ #revenge
+ Spell(revenge)
+ #battle_shout,if=rage<=rage.max-20
+ if Rage() <= MaxRage() -20 Spell(battle_shout)
+ #thunder_clap,if=glyph.resonating_power.enabled|target.debuff.weakened_blows.down
+ if Glyph(glyph_of_resonating_power) or target.DebuffExpires(weakened_blows_debuff) Spell(thunder_clap)
+ #demoralizing_shout
Spell(demoralizing_shout)
+ #impending_victory,if=enabled
+ if TalentPoints(impending_victory_talent) Spell(impending_victory)
+ #victory_rush,if=!talent.impending_victory.enabled
+ if not TalentPoints(impending_victory_talent) Spell(victory_rush)
+ #devastate
+ Spell(devastate)
+}
+
+AddFunction ProtectionDefaultActions
+{
+ #auto_attack
+ #berserker_rage,if=buff.enrage.down&rage<=rage.max-10
+ if BuffExpires(enrage_buff) and Rage() <= MaxRage() -10 Spell(berserker_rage)
+}
+
+AddFunction ProtectionDefaultShortCdActions
+{
+ #auto_attack
+ #heroic_strike,if=buff.ultimatum.up|buff.glyph_incite.up
+ if BuffPresent(ultimatum_buff) or BuffPresent(glyph_incite_buff) Spell(heroic_strike)
+ #shield_block
+ Spell(shield_block)
+ #shield_barrier,if=incoming_damage_1500ms>health.max*0.3|rage>rage.max-20
+ if IncomingDamage(1.500) > MaxHealth() * 0.3 or Rage() > MaxRage() -20 Spell(shield_barrier)
+}
+
+AddFunction ProtectionDefaultCdActions
+{
+ #mountains_potion,if=incoming_damage_2500ms>health.max*0.6&(buff.shield_wall.down&buff.last_stand.down)
+ if IncomingDamage(2.500) > MaxHealth() * 0.6 and { BuffExpires(shield_wall_buff) and BuffExpires(last_stand_buff) } Spell(mountains_potion)
+ #shield_wall,if=incoming_damage_2500ms>health.max*0.6
+ if IncomingDamage(2.500) > MaxHealth() * 0.6 Spell(shield_wall)
+ #run_action_list,name=dps_cds,if=buff.vengeance.value>health.max*0.20
+ if BuffAmount(vengeance_buff) > MaxHealth() * 0.2 ProtectionDpsCdsActions()
+}
+
+AddFunction ProtectionAoeActions
+{
+ if BuffPresent(ultimatum_buff) or BuffPresent(glyph_incite_buff) Spell(cleave)
+ ProtectionDefaultActions()
+ Spell(thunder_clap)
+ ProtectionNormalRotationActions()
+}
+
+AddFunction ProtectionPrecombatActions
+{
+ #flask,type=earth
+ #food,type=chun_tian_spring_rolls
+ #snapshot_stats
+ #stance,choose=defensive
+ if not Stance(warrior_defensive_stance) Spell(defensive_stance)
+ #battle_shout
+ Spell(battle_shout)
+}
+
+### Protection icons.
+
+AddIcon mastery=protection size=small checkboxon=opt_icons_left
+{
+ Spell(vigilance)
+ Spell(demoralizing_banner)
+ Spell(rallying_cry)
+}
+
+AddIcon mastery=protection size=small checkboxon=opt_icons_left
+{
+ if TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(impending_victory usable=1)
+ if not TalentPoints(impending_victory_talent) and HealthPercent() < 80 Spell(victory_rush usable=1)
+ if TalentPoints(enraged_regeneration_talent) Spell(enraged_regeneration)
+}
+
+AddIcon mastery=protection help=shortcd
+{
+ ProtectionDefaultShortCdActions()
}
AddIcon mastery=protection 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)
+ if InCombat(no) ProtectionPrecombatActions()
+ ProtectionDefaultActions()
+ ProtectionNormalRotationActions()
}
AddIcon mastery=protection help=aoe checkboxon=opt_aoe
{
- Spell(dragon_roar)
- Spell(shockwave)
- Spell(thunder_clap)
- if BuffPresent(ultimatum) Spell(cleave)
- if Rage() >=90 Spell(cleave)
- Spell(shield_slam)
+ if InCombat(no) ProtectionPrecombatActions()
+ ProtectionAoeActions()
}
AddIcon mastery=protection help=cd
{
- if Health() <130000 Spell(last_stand)
- if TalentPoints(avatar_talent) Spell(avatar)
- Spell(recklessness)
- if BuffExpires(shield_block_aura) Spell(shield_wall)
- UseItemActions()
+ Interrupt()
+ UseRacialInterruptActions()
+ ProtectionDefaultCdActions()
}
-AddIcon mastery=protection size=small checkboxon=opt_icons_right {}
+AddIcon mastery=protection size=small checkboxon=opt_icons_right
+{
+ Spell(die_by_the_sword)
+ Spell(shield_wall)
+}
AddIcon mastery=protection size=small checkboxon=opt_icons_right
{
+ #shattering_throw
+ if target.DebuffExpires(shattering_throw_debuff) Spell(shattering_throw)
+
UseItemActions()
}
]]
diff --git a/scripts/ovale_warrior_spells.lua b/scripts/ovale_warrior_spells.lua
index 7c1bd78..bc8517f 100644
--- a/scripts/ovale_warrior_spells.lua
+++ b/scripts/ovale_warrior_spells.lua
@@ -3,140 +3,301 @@ local OvaleScripts = Ovale.OvaleScripts
do
local name = "ovale_warrior_spells"
- local desc = "[5.2] Ovale: Warrior spells"
+ local desc = "[5.4.7] Ovale: Warrior spells"
local code = [[
# Warrior spells and functions.
Define(avatar 107574)
- SpellInfo(avatar duration=24 cd=180)
- SpellAddBuff(avatar avatar=1)
+ SpellInfo(avatar cd=180)
+ SpellInfo(avatar buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(avatar buff_cdr=cooldown_reduction_strength_buff mastery=fury)
Define(avatar_talent 16)
+Define(bastion_of_defense 84608)
Define(battle_shout 6673)
- SpellInfo(battle_shout duration=300 cd=60)
- SpellAddBuff(battle_shout battle_shout=1)
+ SpellInfo(battle_shout cd=60 rage=-20)
+ SpellInfo(battle_shout cd=30 rage=-10 glyph=glyph_of_hoarse_voice)
Define(battle_stance 2457)
- SpellInfo(battle_stance cd=3)
+ SpellInfo(battle_stance cd=1.5)
Define(berserker_rage 18499)
- SpellInfo(berserker_rage duration=6 cd=30)
- SpellAddBuff(berserker_rage berserker_rage=1)
+ SpellInfo(berserker_rage cd=30 rage=-10)
+Define(berserker_stance 2458)
+ SpellInfo(berserker_stance cd=1.5)
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)
+ SpellInfo(bladestorm cd=60)
+ SpellInfo(bladestorm buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(bladestorm buff_cdr=cooldown_reduction_strength_buff mastery=fury)
+Define(bladestorm_talent 10)
+Define(blood_and_thunder 84615)
+Define(bloodbath 12292)
+ SpellInfo(bloodbath cd=60)
+ SpellInfo(bloodbath buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(bloodbath buff_cdr=cooldown_reduction_strength_buff mastery=fury)
+ SpellAddBuff(bloodbath bloodbath_buff=1)
+Define(bloodbath_buff 12292)
+ SpellInfo(bloodbath_buff duration=12)
Define(bloodbath_talent 17)
-Define(bloodsurge 46916)
- SpellInfo(bloodsurge duration=10)
+Define(bloodsurge 46915)
+Define(bloodsurge_buff 46916)
+ SpellInfo(bloodsurge_buff duration=15 maxstacks=3)
Define(bloodthirst 23881)
- SpellInfo(bloodthirst rage=-10 cd=4.5)
+ SpellInfo(bloodthirst cd=4.5 rage=-10)
+ SpellAddTargetDebuff(bloodthirst deep_wounds_debuff=1 if_spell=deep_wounds)
+Define(charge 100)
+ SpellInfo(charge cd=20 rage=20)
+ SpellInfo(charge cd=12 talent=juggernaut_talent)
+ SpellInfo(charge rage=35 glyph=glyph_of_bull_rush)
Define(cleave 845)
- SpellInfo(cleave rage=30 cd=1.5)
+ SpellInfo(cleave cd=1.5 rage=30)
+ SpellInfo(cleave buff_rage_none=cleave_heroic_strike_no_rage_buff)
+ SpellAddBuff(cleave cleaving_buff=0)
+ SpellAddBuff(cleave glyph_incite_buff=-1 glyph=glyph_of_incite)
+ SpellAddBuff(cleave ultimatum_buff=0 if_spell=ultimatum)
+Define(cleaving_buff 65156)
+ SpellInfo(cleaving_buff duration=6)
+SpellList(cleave_heroic_strike_no_rage_buff cleaving_buff ultimatum_buff)
Define(colossus_smash 86346)
- SpellInfo(colossus_smash duration=6.5 cd=20)
- SpellAddTargetDebuff(colossus_smash colossus_smash=1)
+ SpellInfo(colossus_smash cd=20)
+ SpellAddTargetDebuff(colossus_smash colossus_smash_debuff=1)
+ SpellAddTargetDebuff(colossus_smash weakened_armor_debuff=1 glyph=glyph_of_colossus_smash)
+Define(colossus_smash_debuff 86346)
+ SpellInfo(colossus_smash duration=6)
+Define(commanding_shout 469)
+ SpellInfo(commanding_shout cd=60 rage=-20)
+ SpellInfo(commanding_shout cd=30 rage=-10 glyph=glyph_of_hoarse_voice)
+Define(death_sentence_buff 144442) # tier16_4pc_melee_buff
+ SpellInfo(death_sentence_buff duration=12)
+Define(deep_wounds 115767)
+Define(deep_wounds_debuff 115767)
+ SpellInfo(deep_wounds_debuff duration=15 tick=3)
Define(defensive_stance 71)
- SpellInfo(defensive_stance cd=3)
+ SpellInfo(defensive_stance cd=1.5)
+Define(demoralizing_banner 114203)
+ SpellInfo(demoralizing_banner cd=180)
Define(demoralizing_shout 1160)
- SpellInfo(demoralizing_shout duration=10 cd=60)
- SpellAddTargetDebuff(demoralizing_shout demoralizing_shout=1)
+ SpellInfo(demoralizing_shout cd=60)
+ SpellInfo(demoralizing_shout buff_cdr=cooldown_reduction_tank_buff)
Define(devastate 20243)
+ SpellAddTargetDebuff(devastate weakened_armor_debuff=1)
+ SpellAddTargetDebuff(devastate deep_wounds_debuff=1 if_spell=deep_wounds)
+Define(die_by_the_sword 118038)
+ SpellInfo(die_by_the_sword cd=120)
+Define(disrupting_shout 102060)
+ SpellInfo(disrupting_shout cd=40)
+Define(disrupting_shout_talent 9)
Define(dragon_roar 118000)
SpellInfo(dragon_roar cd=60)
+ SpellInfo(dragon_roar buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(dragon_roar buff_cdr=cooldown_reduction_strength_buff mastery=fury)
Define(dragon_roar_talent 12)
-Define(enrage 5229)
- SpellInfo(enrage duration=10 rage=-20 cd=60)
- SpellAddBuff(enrage enrage=1)
+Define(enrage_buff 12880)
+ SpellInfo(enrage_buff duration=6)
+Define(enraged_regeneration 55694)
+ SpellInfo(enraged_regeneration cd=60)
+Define(enraged_regeneration_talent 4)
Define(execute 5308)
SpellInfo(execute rage=30)
+ SpellInfo(execute buff_rage_none=death_sentence_buff itemset=T16_melee itemcount=4)
+ SpellAddBuff(execute sudden_execute_buff=1 if_spell=sudden_death)
+Define(glyph_of_bull_rush 94372)
+Define(glyph_of_colossus_smash 89003)
+Define(glyph_of_death_from_above 63325)
+Define(glyph_incite_buff 122016)
+ SpellInfo(glyph_incite_buff duration=10 maxstacks=3)
+Define(glyph_of_furious_sundering 63326)
+Define(glyph_of_gag_order 58357)
+Define(glyph_of_hoarse_voice 58387)
+Define(glyph_of_incite 122013)
+Define(glyph_of_recklessness 94374)
+Define(glyph_of_resonating_power 58356)
+Define(glyph_of_rude_interruption 58372)
+Define(glyph_of_shield_wall 63329)
+Define(glyph_of_spell_reflection 63328)
Define(heroic_leap 6544)
- SpellInfo(heroic_leap duration=1 cd=45)
+ SpellInfo(heroic_leap cd=45)
+ SpellInfo(heroic_leap addcd=-15 glyph=glyph_of_death_from_above)
+ SpellInfo(heroic_leap buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(heroic_leap buff_cdr=cooldown_reduction_strength_buff mastery=fury)
+ SpellInfo(heroic_leap buff_cdr=cooldown_reduction_tank_buff mastery=protection)
Define(heroic_strike 78)
SpellInfo(heroic_strike rage=30 cd=1.5)
+ SpellInfo(heroic_strike buff_rage_none=cleave_heroic_strike_no_rage_buff)
+ SpellAddBuff(heroic_strike cleaving_buff=0)
+ SpellAddBuff(heroic_strike glyph_incite_buff=-1 glyph=glyph_of_incite)
+ SpellAddBuff(heroic_strike ultimatum_buff=0 if_spell=ultimatum)
Define(heroic_throw 57755)
SpellInfo(heroic_throw cd=30)
Define(impending_victory 103840)
SpellInfo(impending_victory rage=10 cd=30)
+ SpellAddBuff(impending_victory victorious_buff=0)
+ SpellAddBuff(impending_victory tier15_2pc_tank_buff=0 itemset=T15_tank itemcount=2)
Define(impending_victory_talent 6)
+Define(juggernaut_talent 1)
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)
+ SpellInfo(last_stand cd=180)
+ SpellInfo(last_stand addcd=-60 itemset=T14_tank itemcount=2)
+ SpellInfo(last_stand buff_cdr=cooldown_reduction_tank_buff)
+ SpellAddBuff(last_stand last_stand_buff=1)
+Define(last_stand_buff 12975)
+ SpellInfo(last_stand_buff duration=20)
+Define(meat_cleaver 12950)
+Define(meat_cleaver_buff 85739)
+ SpellInfo(meat_cleaver_buff duration=10 maxstacks=3)
Define(mortal_strike 12294)
- SpellInfo(mortal_strike duration=10 rage=-10 cd=6)
- SpellAddTargetDebuff(mortal_strike mortal_wounds=1)
+ SpellInfo(mortal_strike cd=6 rage=-10)
+ SpellAddBuff(mortal_strike taste_for_blood_buff=2 if_spell=taste_for_blood)
+ SpellAddTargetDebuff(mortal_strike deep_wounds_debuff=1 if_spell=deep_wounds)
Define(overpower 7384)
SpellInfo(overpower rage=10)
- SpellAddBuff(overpower taste_for_blood=-1)
+ SpellInfo(overpower buff_rage_none=sudden_execute_buff)
+ SpellAddBuff(overpower sudden_execute_buff=0)
+ SpellAddBuff(overpower taste_for_blood_buff=-1 if_spell=taste_for_blood)
Define(pummel 6552)
- SpellInfo(pummel duration=4 cd=15)
+ SpellInfo(pummel 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)
+ SpellInfo(raging_blow rage=10)
+ SpellAddBuff(raging_blow raging_blow_buff=-1)
+ SpellAddBuff(raging_blow meat_cleaver_buff=0 if_spell=meat_cleaver)
+Define(raging_blow_buff 131116)
+ SpellInfo(raging_blow_aura duration=12 maxstacks=2)
+Define(rallying_cry 97462)
+ SpellInfo(rallying_cry cd=180)
Define(recklessness 1719)
- SpellInfo(recklessness duration=12 cd=180)
- SpellAddBuff(recklessness recklessness=1)
+ SpellInfo(recklessness cd=180)
+ SpellInfo(recklessness buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(recklessness buff_cdr=cooldown_reduction_strength_buff mastery=fury)
+ SpellInfo(recklessness buff_cdr=cooldown_reduction_tank_buff mastery=protection)
+ SpellAddBuff(recklessness recklessness_buff=1)
+Define(recklessness_buff 1719)
+ SpellInfo(recklessness_buff duration=12)
+ SpellInfo(recklessness_buff addduration=6 glyph=glyph_of_recklessness)
Define(revenge 6572)
- SpellInfo(revenge rage=-15 cd=9)
+ SpellInfo(revenge rage=-20 cd=9)
+ SpellInfo(revenge rage=-20 if_stance=warrior_defensive_stance)
+Define(safeguard 114029)
+ SpellInfo(safeguard cd=30)
+Define(safeguard_talent 14)
+Define(seasoned_soldier 12712)
+Define(shattering_throw 64382)
+ SpellInfo(shattering_throw cd=300)
+ SpellAddTargetDebuff(shattering_throw shattering_throw_debuff=1)
+Define(shattering_throw_debuff 64382)
+ SpellInfo(shattering_throw_debuff duration=10)
Define(shield_barrier 112048)
- SpellInfo(shield_barrier duration=6 rage=20 cd=1.5)
- SpellAddBuff(shield_barrier shield_barrier=1)
+ SpellInfo(shield_barrier cd=1.5 rage=finisher min_rage=20 max_rage=60)
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)
+ SpellInfo(shield_block cd=1.5 rage=60)
+ SpellInfo(shield_block rage=55 itemset=T14_tank itemcount=4)
Define(shield_slam 23922)
- SpellInfo(shield_slam rage=-20 cd=6)
+ SpellInfo(shield_slam cd=6)
+ SpellInfo(shield_slam rage=-20 if_stance=warrior_defensive_stance)
+ SpellInfo(shield_slam buff_rage=sword_and_board_buff buff_rage_amount=-5 if_spell=sword_and_board)
+ SpellAddBuff(shield_slam sword_and_board_buff=0 if_spell=sword_and_board)
Define(shield_wall 871)
- SpellInfo(shield_wall duration=12 cd=300)
- SpellAddBuff(shield_wall shield_wall=1)
+ SpellInfo(shield_wall cd=300)
+ SpellInfo(shield_wall addcd=120 glyph=glyph_of_shield_wall)
+ SpellInfo(shield_wall addcd=-60 if_spell=bastion_of_defense)
+ SpellAddBuff(shield_wall shield_wall_buff=1)
+Define(shield_wall_buff 871)
+ SpellInfo(shield_wall duration=12)
+ SpellInfo(shield_wall buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(shield_wall buff_cdr=cooldown_reduction_strength_buff mastery=fury)
+ SpellInfo(shield_wall buff_cdr=cooldown_reduction_tank_buff mastery=protection)
Define(shockwave 46968)
SpellInfo(shockwave cd=40)
- SpellAddBuff(shockwave shockwave=1)
+ SpellInfo(shockwave buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(shockwave buff_cdr=cooldown_reduction_strength_buff mastery=fury)
Define(shockwave_talent 11)
Define(skull_banner 114207)
- SpellInfo(skull_banner duration=10 cd=180)
+ SpellInfo(skull_banner cd=180)
+ SpellAddBuff(skull_banner skull_banner_buff=1)
+Define(skull_banner_buff 114206)
+ SpellInfo(skull_banner_buff duration=10)
Define(slam 1464)
- SpellInfo(slam rage=20)
+ SpellInfo(slam rage=25)
+Define(spell_reflection 23920)
+ SpellInfo(spell_reflection cd=25)
+ SpellInfo(spell_reflection addcd=-5 glyph=glyph_of_spell_reflection)
Define(storm_bolt 107570)
SpellInfo(storm_bolt cd=30)
- SpellAddBuff(storm_bolt storm_bolt=1)
+ SpellInfo(storm_bolt buff_cdr=cooldown_reduction_strength_buff mastery=arms)
+ SpellInfo(storm_bolt buff_cdr=cooldown_reduction_strength_buff mastery=fury)
Define(storm_bolt_talent 18)
-Define(sudden_execute 139958)
- SpellInfo(sudden_execute duration=10)
- SpellAddBuff(sudden_execute sudden_execute=1)
+Define(sudden_death 29725)
+Define(sudden_execute_buff 139958)
+ SpellInfo(sudden_execute_buff duration=10)
Define(sunder_armor 7386)
- SpellInfo(sunder_armor rage=15)
- SpellAddTargetDebuff(sunder_armor weakened_armor=1)
+ SpellInfo(sunder_armor rage=15 glyph=!glyph_of_furious_sundering)
+ SpellAddTargetDebuff(sunder_armor weakened_armor_debuff=1)
Define(sweeping_strikes 12328)
- SpellInfo(sweeping_strikes duration=10 rage=30 cd=10)
- SpellAddBuff(sweeping_strikes sweeping_strikes=1)
+ SpellInfo(sweeping_strikes cd=10 rage=30)
+ SpellAddBuff(sweeping_strikes sweeping_strikes_buff=1)
+Define(sweeping_strikes_buff 12328)
+ SpellInfo(sweeping_strikes_buff duration=10)
+Define(sword_and_board 46953)
+Define(sword_and_board_buff 50227)
+ SpellInfo(sword_and_board_buff duration=5)
Define(taste_for_blood 56636)
+Define(taste_for_blood_buff 60503)
+ SpellInfo(taste_for_blood_buff duration=12 maxstacks=5)
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)
+ SpellInfo(thunder_clap cd=6 rage=20)
+ SpellInfo(thunder_clap addcd=3 glyph=glyph_of_resonating_power)
+ SpellInfo(thunder_clap rage=10 if_spell=seasoned_soldier)
+ SpellInfo(thunder_clap rage=0 if_spell=unwavering_sentinel)
+ SpellAddTargetDebuff(thunder_clap weakened_blows_debuff=1)
+ SpellAddTargetDebuff(thunder_clap deep_wounds_debuff=1 if_spell=blood_and_thunder)
+Define(tier15_2pc_tank_buff 138279)
+ SpellInfo(tier15_2pc_tank_buff duration=15)
+Define(ultimatum 122509)
+Define(ultimatum_buff 122510)
+ SpellInfo(ultimatum_buff duration=10)
+Define(unwavering_sentinel 29144)
+Define(vengeance_buff 132365)
+ SpellInfo(vengeance_buff duration=20)
+Define(victorious_buff 32216)
+ SpellInfo(victorious_buff duration=20)
+Define(victory_rush 34428)
+ SpellAddBuff(victory_rush victorious_buff=0)
+ SpellAddBuff(victory_rush tier15_2pc_tank_buff=0 itemset=T15_tank itemcount=2)
+Define(vigilance 114030)
+ SpellInfo(vigilance cd=120)
+Define(vigilance_talent 15)
+Define(weakened_armor_debuff 113746)
+ SpellInfo(weakened_armor_debuff duration=30 maxstacks=3)
+Define(weakened_blows_debuff 115798)
+ SpellInfo(weakened_blows_debuff duration=30)
+Define(wild_strike 100130)
+ SpellInfo(wild_strike rage=30)
+ SpellInfo(wild_strike buff_rage_none=bloodsurge_buff if_spell=bloodsurge)
+ SpellAddBuff(wild_strike bloodsurge_buff=-1 if_spell=bloodsurge)
Define(whirlwind 1680)
SpellInfo(whirlwind rage=30)
+ SpellInfo(whirlwind rage=20 if_spell=seasoned_soldier)
Define(wild_strike 100130)
SpellInfo(wild_strike rage=30)
- SpellAddBuff(wild_strike bloodsurge=-1)
- SpellAddTargetDebuff(wild_strike wild_strike=1)
+ SpellInfo(wild_strike buff_rage_none=bloodsurge_buff if_spell=bloodsurge)
+ SpellAddBuff(wild_strike bloodsurge_buff=-1)
+
+AddFunction Interrupt
+{
+ if target.IsFriend(no) and target.IsInterruptible()
+ {
+ if target.InRange(pummel) Spell(pummel)
+ if Glyph(glyph_of_gag_order) and target.InRange(heroic_throw) Spell(heroic_throw)
+ Spell(disrupting_shout)
+ }
+}
+
+AddCheckBox(opt_heroic_leap_dps SpellName(heroic_leap) mastery=!protection)
+AddFunction HeroicLeap
+{
+ if CheckBoxOn(opt_heroic_leap_dps) Spell(heroic_leap)
+}
+
+AddFunction RagingBlow
+{
+ if BuffPresent(raging_blow_buff) Spell(raging_blow)
+}
]]
OvaleScripts:RegisterScript("WARRIOR", name, desc, code, "include")
diff --git a/scripts/simulationcraft_warrior_arms_t16h.lua b/scripts/simulationcraft_warrior_arms_t16h.lua
index dd23396..ae4b21b 100644
--- a/scripts/simulationcraft_warrior_arms_t16h.lua
+++ b/scripts/simulationcraft_warrior_arms_t16h.lua
@@ -32,7 +32,7 @@ AddFunction ArmsAoeActions
#mortal_strike,if=active_enemies=2|rage<50
if Enemies() == 2 or Rage() < 50 Spell(mortal_strike)
#execute,if=buff.sudden_execute.down&active_enemies=2
- if BuffExpires(sudden_execute_buff) and Enemies() == 2 Spell(execute)
+ if BuffExpires(sudden_execute_buff) and Enemies() == 2 Spell(execute usable=1)
#slam,if=buff.sweeping_strikes.up&debuff.colossus_smash.up
if BuffPresent(sweeping_strikes_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(slam)
#overpower,if=active_enemies=2
@@ -60,13 +60,13 @@ AddFunction ArmsSingleTargetActions
#dragon_roar,if=enabled&debuff.colossus_smash.down
if TalentPoints(dragon_roar_talent) and target.DebuffExpires(colossus_smash_debuff) Spell(dragon_roar)
#execute,if=buff.sudden_execute.down|buff.taste_for_blood.down|rage>90|target.time_to_die<12
- if BuffExpires(sudden_execute_buff) or BuffExpires(taste_for_blood_buff) or Rage() > 90 or target.TimeToDie() < 12 Spell(execute)
+ if BuffExpires(sudden_execute_buff) or BuffExpires(taste_for_blood_buff) or Rage() > 90 or target.TimeToDie() < 12 Spell(execute usable=1)
#slam,if=target.health.pct>=20&(trinket.stacking_stat.crit.stack>=10|buff.recklessness.up)
if target.HealthPercent() >= 20 and { BuffStacks(trinket_stacking_stat_crit_buff) >= 10 or BuffPresent(recklessness_buff) } Spell(slam)
#overpower,if=target.health.pct>=20&rage<100|buff.sudden_execute.up
if target.HealthPercent() >= 20 and Rage() < 100 or BuffPresent(sudden_execute_buff) Spell(overpower)
#execute
- Spell(execute)
+ Spell(execute usable=1)
#slam,if=target.health.pct>=20
if target.HealthPercent() >= 20 Spell(slam)
#heroic_throw
@@ -99,7 +99,7 @@ AddFunction ArmsDefaultActions
#berserker_rage,if=buff.enrage.remains<0.5
if BuffRemains(enrage_buff) < 0.5 Spell(berserker_rage)
#heroic_leap,if=debuff.colossus_smash.up
- if target.DebuffPresent(colossus_smash_debuff) Spell(heroic_leap)
+ if target.DebuffPresent(colossus_smash_debuff) HeroicLeap()
#run_action_list,name=aoe,if=active_enemies>=2
if Enemies() >= 2 ArmsAoeActions()
#run_action_list,name=single_target,if=active_enemies<2
diff --git a/scripts/simulationcraft_warrior_fury_1h_t16h.lua b/scripts/simulationcraft_warrior_fury_1h_t16h.lua
index 2c64170..08896bd 100644
--- a/scripts/simulationcraft_warrior_fury_1h_t16h.lua
+++ b/scripts/simulationcraft_warrior_fury_1h_t16h.lua
@@ -24,11 +24,11 @@ AddFunction FurySingleTargetActions
#heroic_strike,if=((debuff.colossus_smash.up&rage>=40)&target.health.pct>=20)|rage>=100&buff.enrage.up
if { { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 40 } and target.HealthPercent() >= 20 } or Rage() >= 100 and BuffPresent(enrage_buff) Spell(heroic_strike)
#heroic_leap,if=debuff.colossus_smash.up
- if target.DebuffPresent(colossus_smash_debuff) Spell(heroic_leap)
+ if target.DebuffPresent(colossus_smash_debuff) HeroicLeap()
#storm_bolt,if=enabled&buff.cooldown_reduction.up&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#raging_blow,if=buff.raging_blow.stack=2&debuff.colossus_smash.up&target.health.pct>=20
- if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) and target.HealthPercent() >= 20 Spell(raging_blow)
+ if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) and target.HealthPercent() >= 20 RagingBlow()
#storm_bolt,if=enabled&buff.cooldown_reduction.down&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#bloodthirst,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)
@@ -44,15 +44,15 @@ AddFunction FurySingleTargetActions
#storm_bolt,if=enabled&buff.cooldown_reduction.down
if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) Spell(storm_bolt)
#execute,if=debuff.colossus_smash.up|rage>70|target.time_to_die<12
- if target.DebuffPresent(colossus_smash_debuff) or Rage() > 70 or target.TimeToDie() < 12 Spell(execute)
+ if target.DebuffPresent(colossus_smash_debuff) or Rage() > 70 or target.TimeToDie() < 12 Spell(execute usable=1)
#raging_blow,if=target.health.pct<20|buff.raging_blow.stack=2|(debuff.colossus_smash.up|(cooldown.bloodthirst.remains>=1&buff.raging_blow.remains<=3))
- if target.HealthPercent() < 20 or BuffStacks(raging_blow_buff) == 2 or { target.DebuffPresent(colossus_smash_debuff) or { SpellCooldown(bloodthirst) >= 1 and BuffRemains(raging_blow_buff) <= 3 } } Spell(raging_blow)
+ if target.HealthPercent() < 20 or BuffStacks(raging_blow_buff) == 2 or { target.DebuffPresent(colossus_smash_debuff) or { SpellCooldown(bloodthirst) >= 1 and BuffRemains(raging_blow_buff) <= 3 } } RagingBlow()
#bladestorm,if=enabled
if TalentPoints(bladestorm_talent) Spell(bladestorm)
#wild_strike,if=buff.bloodsurge.up
if BuffPresent(bloodsurge_buff) Spell(wild_strike)
#raging_blow,if=cooldown.colossus_smash.remains>=3
- if SpellCooldown(colossus_smash) >= 3 Spell(raging_blow)
+ if SpellCooldown(colossus_smash) >= 3 RagingBlow()
#shattering_throw,if=cooldown.colossus_smash.remains>5
if SpellCooldown(colossus_smash) > 5 Spell(shattering_throw)
#shockwave,if=enabled
@@ -122,7 +122,7 @@ AddFunction FuryTwoTargetsActions
#cleave,if=(rage>=60&debuff.colossus_smash.up)|rage>110
if { Rage() >= 60 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > 110 Spell(cleave)
#heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
- if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } Spell(heroic_leap)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&(!talent.storm_bolt.enabled|(talent.storm_bolt.enabled&!debuff.colossus_smash.up))
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and { not TalentPoints(storm_bolt_talent) or { TalentPoints(storm_bolt_talent) and not target.DebuffPresent(colossus_smash_debuff) } } Spell(bladestorm)
#dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
@@ -138,13 +138,13 @@ AddFunction FuryTwoTargetsActions
#wait,sec=cooldown.bloodthirst.remains,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)&cooldown.bloodthirst.remains<=1
if not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } and SpellCooldown(bloodthirst) <= 1 wait Spell(bloodthirst)
#raging_blow,if=buff.meat_cleaver.up
- if BuffPresent(meat_cleaver_buff) Spell(raging_blow)
+ if BuffPresent(meat_cleaver_buff) RagingBlow()
#whirlwind,if=!buff.meat_cleaver.up
if not BuffPresent(meat_cleaver_buff) Spell(whirlwind)
#shockwave,if=enabled
if TalentPoints(shockwave_talent) Spell(shockwave)
#execute
- Spell(execute)
+ Spell(execute usable=1)
#battle_shout
Spell(battle_shout)
#heroic_throw
@@ -160,7 +160,7 @@ AddFunction FuryThreeTargetsActions
#cleave,if=(rage>=70&debuff.colossus_smash.up)|rage>90
if { Rage() >= 70 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > 90 Spell(cleave)
#heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
- if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } Spell(heroic_leap)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
#dragon_roar,if=enabled&!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled)
@@ -172,13 +172,13 @@ AddFunction FuryThreeTargetsActions
#storm_bolt,if=enabled&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#raging_blow,if=buff.meat_cleaver.stack=2
- if BuffStacks(meat_cleaver_buff) == 2 Spell(raging_blow)
+ if BuffStacks(meat_cleaver_buff) == 2 RagingBlow()
#whirlwind
Spell(whirlwind)
#shockwave,if=enabled
if TalentPoints(shockwave_talent) Spell(shockwave)
#raging_blow
- Spell(raging_blow)
+ RagingBlow()
#battle_shout
Spell(battle_shout)
#heroic_throw
@@ -194,13 +194,13 @@ AddFunction FuryAoeActions
#cleave,if=rage>90
if Rage() > 90 Spell(cleave)
#heroic_leap,if=buff.enrage.up
- if BuffPresent(enrage_buff) Spell(heroic_leap)
+ if BuffPresent(enrage_buff) HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
#bloodthirst,cycle_targets=1,if=!dot.deep_wounds.ticking&buff.enrage.down
if not target.DebuffPresent(deep_wounds_debuff) and BuffExpires(enrage_buff) Spell(bloodthirst)
#raging_blow,if=buff.meat_cleaver.stack=3
- if BuffStacks(meat_cleaver_buff) == 3 Spell(raging_blow)
+ if BuffStacks(meat_cleaver_buff) == 3 RagingBlow()
#whirlwind
Spell(whirlwind)
#dragon_roar,if=enabled&debuff.colossus_smash.down&(buff.bloodbath.up|!talent.bloodbath.enabled)
diff --git a/scripts/simulationcraft_warrior_fury_2h_t16h.lua b/scripts/simulationcraft_warrior_fury_2h_t16h.lua
index 95b5775..f97a858 100644
--- a/scripts/simulationcraft_warrior_fury_2h_t16h.lua
+++ b/scripts/simulationcraft_warrior_fury_2h_t16h.lua
@@ -24,13 +24,13 @@ AddFunction FurySingleTargetActions
#heroic_strike,if=(debuff.colossus_smash.up&rage>=40|rage>=100)&buff.enrage.up
if { target.DebuffPresent(colossus_smash_debuff) and Rage() >= 40 or Rage() >= 100 } and BuffPresent(enrage_buff) Spell(heroic_strike)
#heroic_leap,if=debuff.colossus_smash.up&buff.enrage.up
- if target.DebuffPresent(colossus_smash_debuff) and BuffPresent(enrage_buff) Spell(heroic_leap)
+ if target.DebuffPresent(colossus_smash_debuff) and BuffPresent(enrage_buff) HeroicLeap()
#bloodthirst,if=!buff.enrage.up
if not BuffPresent(enrage_buff) Spell(bloodthirst)
#storm_bolt,if=enabled&buff.cooldown_reduction.up&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and BuffPresent(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#raging_blow,if=buff.raging_blow.stack=2&debuff.colossus_smash.up
- if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) Spell(raging_blow)
+ if BuffStacks(raging_blow_buff) == 2 and target.DebuffPresent(colossus_smash_debuff) RagingBlow()
#storm_bolt,if=enabled&buff.cooldown_reduction.down&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
@@ -46,15 +46,15 @@ AddFunction FurySingleTargetActions
#storm_bolt,if=enabled&buff.cooldown_reduction.down
if TalentPoints(storm_bolt_talent) and BuffExpires(cooldown_reduction_strength_buff) Spell(storm_bolt)
#execute,if=buff.raging_blow.stack<2&(((rage>70&!debuff.colossus_smash.up)|debuff.colossus_smash.up)|trinket.proc.strength.up)|target.time_to_die<5
- if BuffStacks(raging_blow_buff) < 2 and { { { Rage() > 70 and not target.DebuffPresent(colossus_smash_debuff) } or target.DebuffPresent(colossus_smash_debuff) } or BuffPresent(trinket_proc_strength_buff) } or target.TimeToDie() < 5 Spell(execute)
+ if BuffStacks(raging_blow_buff) < 2 and { { { Rage() > 70 and not target.DebuffPresent(colossus_smash_debuff) } or target.DebuffPresent(colossus_smash_debuff) } or BuffPresent(trinket_proc_strength_buff) } or target.TimeToDie() < 5 Spell(execute usable=1)
#berserker_rage,if=buff.raging_blow.stack<=1&target.health.pct>=20
if BuffStacks(raging_blow_buff) <= 1 and target.HealthPercent() >= 20 Spell(berserker_rage)
#raging_blow,if=buff.raging_blow.stack=2|debuff.colossus_smash.up|buff.raging_blow.remains<=3
- if BuffStacks(raging_blow_buff) == 2 or target.DebuffPresent(colossus_smash_debuff) or BuffRemains(raging_blow_buff) <= 3 Spell(raging_blow)
+ if BuffStacks(raging_blow_buff) == 2 or target.DebuffPresent(colossus_smash_debuff) or BuffRemains(raging_blow_buff) <= 3 RagingBlow()
#bladestorm,if=enabled,interrupt_if=cooldown.bloodthirst.remains<1
if TalentPoints(bladestorm_talent) Spell(bladestorm)
#raging_blow,if=cooldown.colossus_smash.remains>=1
- if SpellCooldown(colossus_smash) >= 1 Spell(raging_blow)
+ if SpellCooldown(colossus_smash) >= 1 RagingBlow()
#wild_strike,if=buff.bloodsurge.up
if BuffPresent(bloodsurge_buff) Spell(wild_strike)
#shattering_throw,if=cooldown.colossus_smash.remains>5
@@ -124,7 +124,7 @@ AddFunction FuryTwoTargetsActions
#cleave,if=(rage>=60&debuff.colossus_smash.up)|rage>110
if { Rage() >= 60 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > 110 Spell(cleave)
#heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
- if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } Spell(heroic_leap)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)&(!talent.storm_bolt.enabled|(talent.storm_bolt.enabled&!debuff.colossus_smash.up))
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } and { not TalentPoints(storm_bolt_talent) or { TalentPoints(storm_bolt_talent) and not target.DebuffPresent(colossus_smash_debuff) } } Spell(bladestorm)
#dragon_roar,if=enabled&(!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled))
@@ -140,13 +140,13 @@ AddFunction FuryTwoTargetsActions
#wait,sec=cooldown.bloodthirst.remains,if=!(target.health.pct<20&debuff.colossus_smash.up&rage>=30&buff.enrage.up)&cooldown.bloodthirst.remains<=1
if not { target.HealthPercent() < 20 and target.DebuffPresent(colossus_smash_debuff) and Rage() >= 30 and BuffPresent(enrage_buff) } and SpellCooldown(bloodthirst) <= 1 wait Spell(bloodthirst)
#raging_blow,if=buff.meat_cleaver.up
- if BuffPresent(meat_cleaver_buff) Spell(raging_blow)
+ if BuffPresent(meat_cleaver_buff) RagingBlow()
#whirlwind,if=!buff.meat_cleaver.up
if not BuffPresent(meat_cleaver_buff) Spell(whirlwind)
#shockwave,if=enabled
if TalentPoints(shockwave_talent) Spell(shockwave)
#execute
- Spell(execute)
+ Spell(execute usable=1)
#battle_shout
Spell(battle_shout)
#heroic_throw
@@ -162,7 +162,7 @@ AddFunction FuryThreeTargetsActions
#cleave,if=(rage>=70&debuff.colossus_smash.up)|rage>90
if { Rage() >= 70 and target.DebuffPresent(colossus_smash_debuff) } or Rage() > 90 Spell(cleave)
#heroic_leap,if=buff.enrage.up&(debuff.colossus_smash.up&buff.cooldown_reduction.up|!buff.cooldown_reduction.up)
- if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } Spell(heroic_leap)
+ if BuffPresent(enrage_buff) and { target.DebuffPresent(colossus_smash_debuff) and BuffPresent(cooldown_reduction_strength_buff) or not BuffPresent(cooldown_reduction_strength_buff) } HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
#dragon_roar,if=enabled&!debuff.colossus_smash.up&(buff.bloodbath.up|!talent.bloodbath.enabled)
@@ -174,13 +174,13 @@ AddFunction FuryThreeTargetsActions
#storm_bolt,if=enabled&debuff.colossus_smash.up
if TalentPoints(storm_bolt_talent) and target.DebuffPresent(colossus_smash_debuff) Spell(storm_bolt)
#raging_blow,if=buff.meat_cleaver.stack=2
- if BuffStacks(meat_cleaver_buff) == 2 Spell(raging_blow)
+ if BuffStacks(meat_cleaver_buff) == 2 RagingBlow()
#whirlwind
Spell(whirlwind)
#shockwave,if=enabled
if TalentPoints(shockwave_talent) Spell(shockwave)
#raging_blow
- Spell(raging_blow)
+ RagingBlow()
#battle_shout
Spell(battle_shout)
#heroic_throw
@@ -196,13 +196,13 @@ AddFunction FuryAoeActions
#cleave,if=rage>90
if Rage() > 90 Spell(cleave)
#heroic_leap,if=buff.enrage.up
- if BuffPresent(enrage_buff) Spell(heroic_leap)
+ if BuffPresent(enrage_buff) HeroicLeap()
#bladestorm,if=enabled&(buff.bloodbath.up|!talent.bloodbath.enabled)
if TalentPoints(bladestorm_talent) and { BuffPresent(bloodbath_buff) or not TalentPoints(bloodbath_talent) } Spell(bladestorm)
#bloodthirst,cycle_targets=1,if=!dot.deep_wounds.ticking&buff.enrage.down
if not target.DebuffPresent(deep_wounds_debuff) and BuffExpires(enrage_buff) Spell(bloodthirst)
#raging_blow,if=buff.meat_cleaver.stack=3
- if BuffStacks(meat_cleaver_buff) == 3 Spell(raging_blow)
+ if BuffStacks(meat_cleaver_buff) == 3 RagingBlow()
#whirlwind
Spell(whirlwind)
#dragon_roar,if=enabled&debuff.colossus_smash.down&(buff.bloodbath.up|!talent.bloodbath.enabled)