Cogspark Works · Rotation
Arms Warrior
The priority list SimulationCraft plays this spec with · engine build 20261019-1860cd1-w8a2c73d · game data 12.1.5.70448
§1How to read this
A rotation in SimulationCraft is a priority list, not a sequence. Every time the character can act, the sim starts at the top of The main loop and does the first line whose conditions hold. Lower lines only happen when nothing above them fits.
- The page shows the list as a decision tree: set what you know about the fight and your talents, and it lights the lists the sim checks, in order.
- Cast lines use the ability. Hover, focus or tap an icon or a name for its tooltip.
- Go through another list: its lines are checked in order; when none of them fits, the sim comes back and carries on with the next line here.
- Switch to another list: the rest of this list is skipped and the choice is made from that list alone.
- Helpers are values the list works out on the spot, such as “are we holding a cooldown”. Setting one takes no time and the list carries on. The tree works out the ones your situation settles.
The list is written to perform well in the sim, not to be the only right way to play. Every line keeps its original simc text under the simc toggle at its right, and the list author’s note where there is one.
§2Decision tree
Set what you know. The tree lights the lists the sim checks, top to bottom; in each list it presses the first ability whose conditions hold and that is ready. Readiness (cooldowns, resources) isn’t in the list, so a lit ability is the first one allowed, not a promise it is cast.
- The main loop
- Helpers
- Trinkets
- Colossus AoE (maybe)
- Colossus execute (maybe)
- Colossus st (maybe)
- Slayer AoE (maybe)
- Slayer execute (maybe)
- Slayer st (maybe)
Before the pull, done once before the fight starts (14 steps)
Before the pull14 lines
- Record your stats before the pull (sim bookkeeping)Snapshot raid buffed stats before combat begins and pre-potting is done.
simc
snapshot_stats - Set trinket 1 exclude to true when the following holds, otherwise falsetrinket 1 is Algethar Puzzle Box
simc
variable,name=trinket_1_exclude,value=trinket.1.is.algethar_puzzle_box - Set trinket 2 exclude to true when the following holds, otherwise falsetrinket 2 is Algethar Puzzle Box
simc
variable,name=trinket_2_exclude,value=trinket.2.is.algethar_puzzle_box - Set trinket 1 buffs to true when the following holds, otherwise falsetrinket 1 has an on-use effect that grants a stat buff
simc
variable,name=trinket_1_buffs,value=trinket.1.has_use_buff - Set trinket 2 buffs to true when the following holds, otherwise falsetrinket 2 has an on-use effect that grants a stat buff
simc
variable,name=trinket_2_buffs,value=trinket.2.has_use_buff - Set trinket 1 duration to 0 when the following holds, otherwise to trinket 1's stat buff's durationnever
simc
variable,name=trinket_1_duration,op=setif,value=0,value_else=trinket.1.proc.any_dps.duration,condition=0 - Set trinket 2 duration to 0 when the following holds, otherwise to trinket 2's stat buff's durationnever
simc
variable,name=trinket_2_duration,op=setif,value=0,value_else=trinket.2.proc.any_dps.duration,condition=0 - Set trinket 1 high value to 2 when the following holds, otherwise to 1trinket 1 is Treacherous Transmitter
simc
variable,name=trinket_1_high_value,op=setif,value=2,value_else=1,condition=trinket.1.is.treacherous_transmitter - Set trinket 2 high value to 2 when the following holds, otherwise to 1trinket 2 is Treacherous Transmitter
simc
variable,name=trinket_2_high_value,op=setif,value=2,value_else=1,condition=trinket.2.is.treacherous_transmitter - Set trinket 1 sync to 1 when the following holds, otherwise to 0.5all of these:
- trinket 1 buffs is true
- you have Avatar talented
- the remainder of trinket 1's cooldown divided by Avatar's cooldown is 0
simc
variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&talent.avatar&trinket.1.cooldown.duration%%cooldown.avatar.duration=0 - Set trinket 2 sync to 1 when the following holds, otherwise to 0.5all of these:
- trinket 2 buffs is true
- you have Avatar talented
- the remainder of trinket 2's cooldown divided by Avatar's cooldown is 0
simc
variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&talent.avatar&trinket.2.cooldown.duration%%cooldown.avatar.duration=0 - Set trinket priority to 2 when the following holds, otherwise to 1any of these:
- all of these:
- trinket 1 buffs is false
- trinket 2 buffs is true
- any of these:
- trinket 2 has a cooldown
- trinket 1 has no cooldown
- all of these:
- trinket 2 buffs is true
- trinket 2's cooldown divided by trinket 2 duration times (1.5 plus (1 if trinket 2 can grant Strength, else 0)) times trinket 2 sync times trinket 2 high value times (1 plus ((trinket 2's item level minus trinket 1's item level) divided by 100)) is more than trinket 1's cooldown divided by trinket 1 duration times (1.5 plus (1 if trinket 1 can grant Strength, else 0)) times trinket 1 sync times trinket 1 high value times (1 plus ((trinket 1's item level minus trinket 2's item level) divided by 100))
simc
variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown|!trinket.1.has_cooldown)|variable.trinket_2_buffs&((trinket.2.cooldown.duration%variable.trinket_2_duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync)*(variable.trinket_2_high_value)*(1+((trinket.2.ilvl-trinket.1.ilvl)%100)))>((trinket.1.cooldown.duration%variable.trinket_1_duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync)*(variable.trinket_1_high_value)*(1+((trinket.1.ilvl-trinket.2.ilvl)%100))) - all of these:
- Set damage trinket priority to 2 when the following holds, otherwise to 1all of these:
- trinket 1 buffs is false
- trinket 2 buffs is false
- trinket 2's item level is at least trinket 1's item level
simc
variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl - Cast Battle Stance
simc
battle_stance,toggle=on
The main loop20 lines
- Cast Charge if at most 0.5 s into the fight or the distance you still have to move is more than 5
simc
charge,if=time<=0.5|movement.distance>5 - Start auto-attacking
simc
auto_attack - Drink a potion if (the global cooldown is over and Colossus Smash has more than 8 s left on the target) or the target dies within 25 s
simc
potion,if=gcd.remains=0&debuff.colossus_smash.remains>8|target.time_to_die<25 - Cast Pummel if the target is casting
simc
pummel,if=target.debuff.casting.react go through Helpers, then carry on below if nothing there fits
simc
call_action_list,name=variablesHelpers3 lines
- Set st planning to true when the following holds, otherwise falseall of these:Variables
- there is a single enemy
- any of these:
- the next add wave starts in more than 15 s (or never)
- the fight has no add waves
simc
variable,name=st_planning,value=active_enemies=1&(raid_event.adds.in>15|!raid_event.adds.exists) - Set adds remain to true when the following holds, otherwise falseall of these:
- there are 2 or more enemies
- any of these:
- the fight has no add waves
- all of these:
- the fight has add waves
- the time left in the current add wave is more than 5 s
simc
variable,name=adds_remain,value=active_enemies>=2&(!raid_event.adds.exists|raid_event.adds.exists&raid_event.adds.remains>5) - Set execute phase to true when the following holds, otherwise falseany of these:
- all of these:
- you have Massacre talented
- the target is below 35% health
- the target is below 20% health
simc
variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)|target.health.pct<20 - all of these:
go through Trinkets, then carry on below if nothing there fits
simc
call_action_list,name=trinketsTrinkets5 lines
- Use your trinket 1 if trinket 1 buffs is true and (trinket priority is 1 or trinket 2 buffs is false or trinket 2 has no cooldown) and Avatar is activeTrinkets
simc
use_item,slot=trinket1,if=variable.trinket_1_buffs&(variable.trinket_priority=1|!variable.trinket_2_buffs|!trinket.2.has_cooldown)&(buff.avatar.up) - Use your trinket 2 if trinket 2 buffs is true and (trinket priority is 2 or trinket 1 buffs is false or trinket 1 has no cooldown) and Avatar is active
simc
use_item,slot=trinket2,if=variable.trinket_2_buffs&(variable.trinket_priority=2|!variable.trinket_1_buffs|!trinket.1.has_cooldown)&(buff.avatar.up) - Use your trinket 1 if trinket 1 buffs is false and (damage trinket priority is 1 or trinket 2 buffs is false or trinket 2 has no cooldown)
simc
use_item,slot=trinket1,if=!variable.trinket_1_buffs&(variable.damage_trinket_priority=1|!variable.trinket_2_buffs|!trinket.2.has_cooldown) - Use your trinket 2 if trinket 2 buffs is false and (damage trinket priority is 2 or trinket 1 buffs is false or trinket 1 has no cooldown)
simc
use_item,slot=trinket2,if=!variable.trinket_2_buffs&(variable.damage_trinket_priority=2|!variable.trinket_1_buffs|!trinket.1.has_cooldown) - Use Algethar Puzzle Box if Avatar comes off cooldown within 2 s or Colossus Smash comes off cooldown within 2 s
simc
use_item,name=algethar_puzzle_box,if=cooldown.avatar.remains<2|cooldown.colossus_smash.remains<2
- Cast Arcane Torrent if Mortal Strike has more than 1.5 s of cooldown left and you have less than 50 Rage
simc
arcane_torrent,if=cooldown.mortal_strike.remains>1.5&rage<50 - Cast Light's Judgment if Colossus Smash isn't active on the target and Mortal Strike is on cooldown
simc
lights_judgment,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains - Cast Bag of Tricks if Colossus Smash isn't active on the target and Mortal Strike is on cooldown
simc
bag_of_tricks,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains - Cast Berserking if (the target lives more than 180 s longer and Colossus Smash is active on the target) or (the target dies within 180 s and execute phase is true and Colossus Smash is active on the target) or the target dies within 20 s
simc
berserking,if=target.time_to_die>180&debuff.colossus_smash.up|target.time_to_die<180&variable.execute_phase&debuff.colossus_smash.up|target.time_to_die<20 - Cast Blood Fury if Colossus Smash is active on the target
simc
blood_fury,if=debuff.colossus_smash.up - Cast Fireblood if Colossus Smash is active on the target
simc
fireblood,if=debuff.colossus_smash.up - Cast Ancestral Call if Colossus Smash is active on the target
simc
ancestral_call,if=debuff.colossus_smash.up - Get Power Infusion from an ally if (Colossus Smash is active on the target and at least 135 s of the fight remain) or (execute phase is true and Avatar is active) or the fight ends within 25 s
simc
invoke_external_buff,name=power_infusion,if=debuff.colossus_smash.up&fight_remains>=135|variable.execute_phase&buff.avatar.up|fight_remains<=25 Is it true that you have Demolish talented and there are more than 2 enemies?Not set
If so, switch to Colossus AoE, and nothing below is checked
simc
run_action_list,name=colossus_aoe,if=talent.demolish&active_enemies>2Colossus AoE18 lines
- Cast Sweeping Strikes
simc
sweeping_strikes - Cast Ravager
simc
ravager - Cast Avatar
simc
avatar - Cast Colossus Smash
simc
colossus_smash - Cast Champion's Spear
simc
champions_spear - Cast Cleave
simc
cleave - Cast Mortal Strike if Colossal Might has fewer than 10 stacks
simc
mortal_strike,if=buff.colossal_might.stack<10 - Cast Demolish
simc
demolish - Cast Overpower if you have Dreadnaught talented
simc
overpower,if=talent.dreadnaught - Cast Mortal Strike
simc
mortal_strike - Cast Overpower
simc
overpower - Cast Execute if Sweeping Strikes is active and Sudden Death is active
simc
execute,if=buff.sweeping_strikes.up&buff.sudden_death.up - Cast Heroic Strike
simc
heroic_strike - Cast Execute if you have Deep Wounds talented
simc
execute,if=talent.deep_wounds - Cast Slam
simc
slam - Cast Bladestorm
simc
bladestorm - Cast Wrecking Throw
simc
wrecking_throw - Cast Whirlwind
simc
whirlwind
Is it true that you have Demolish talented and execute phase is true?Not set
If so, switch to Colossus execute, and nothing below is checked
target on the enemy with the lowest target's healthsimc
run_action_list,name=colossus_execute,target_if=min:target.health.pct,if=talent.demolish&variable.execute_phaseColossus execute12 lines
- Cast Sweeping Strikes if there are exactly 2 enemies
simc
sweeping_strikes,if=active_enemies=2 - Cast Avatar if Colossus Smash is active on the target or (Colossus Smash comes off cooldown within 10 s and Colossus Smash has more than one global cooldown of cooldown left)
simc
avatar,if=debuff.colossus_smash.up|cooldown.colossus_smash.remains<10&cooldown.colossus_smash.remains>gcd - Cast Ravager if Colossus Smash comes off cooldown within 2 s
simc
ravager,if=cooldown.colossus_smash.remains<2 - Cast Colossus Smash
simc
colossus_smash - Cast Heroic Strike
simc
heroic_strike - Cast Demolish if Colossus Smash is active on the target
simc
demolish,if=debuff.colossus_smash.up - Cast Mortal Strike if Colossal Might has fewer than 10 stacks or Executioner's Precision has exactly 2 stacks
simc
mortal_strike,if=buff.colossal_might.stack<10|buff.executioners_precision.stack=2 - Cast Execute if (you have Deep Wounds talented and you have more than 75 Rage) or Sudden Death is active
simc
execute,if=talent.deep_wounds&rage>75|buff.sudden_death.up - Cast Overpower
simc
overpower - Cast Execute
simc
execute - Cast Bladestorm if there are exactly 2 enemies
simc
bladestorm,if=active_enemies=2 - Cast Wrecking Throw
simc
wrecking_throw
Is it true that you have Demolish talented?Not set
If so, switch to Colossus st, and nothing below is checked
simc
run_action_list,name=colossus_st,if=talent.demolishColossus st21 lines
- Cast Sweeping Strikes if there are exactly 2 enemies
simc
sweeping_strikes,if=active_enemies=2 - Cast Mortal Strike if Colossal Might has fewer than 10 stacks
simc
mortal_strike,if=buff.colossal_might.stack<10 - Cast Cleave if Rend Dot has at most one global cooldown left on the target, or isn't on it or (Colossus Smash comes off cooldown within 2 s and Rend Dot has at most 10 s left on the target, or isn't on it)
simc
cleave,if=dot.rend_dot.remains<=gcd|cooldown.colossus_smash.remains<2&dot.rend_dot.remains<=10 - Cast Rend if (you don't have Cleave talented and Rend Dot has at most one global cooldown left on the target, or isn't on it) or (Colossus Smash comes off cooldown within 2 s and Rend Dot has at most 10 s left on the target, or isn't on it and you don't have Cleave talented)
simc
rend,if=!talent.cleave&dot.rend_dot.remains<=gcd|cooldown.colossus_smash.remains<2&dot.rend_dot.remains<=10&!talent.cleave - Cast Ravager if Colossus Smash comes off cooldown within 2 s
simc
ravager,if=cooldown.colossus_smash.remains<2 - Cast Execute if Sudden Death has exactly 2 stacks and Colossus Smash comes off cooldown within 2 s and you have Tactical Edge talented
simc
execute,if=buff.sudden_death.stack=2&cooldown.colossus_smash.remains<2&talent.tactical_edge - Cast Avatar if Colossus Smash is active on the target or Colossus Smash has more than one global cooldown of cooldown left
simc
avatar,if=debuff.colossus_smash.up|cooldown.colossus_smash.remains>gcd - Cast Colossus Smash
simc
colossus_smash - Cast Champion's Spear
simc
champions_spear - Cast Demolish if Colossal Might is active and Colossus Smash is active on the target
simc
demolish,if=buff.colossal_might.up&debuff.colossus_smash.up - Cast Heroic Strike
simc
heroic_strike - Cast Execute if Sudden Death has exactly 2 stacks
simc
execute,if=buff.sudden_death.stack=2 - Cast Mortal Strike
simc
mortal_strike - Cast Cleave if Collateral Damage has exactly 3 stacks
simc
cleave,if=buff.collateral_damage.stack=3 - Cast Execute
simc
execute - Cast Overpower
simc
overpower - Cast Cleave if Rend Dot has at most 5 global cooldowns left on the target, or isn't on it
simc
cleave,if=dot.rend_dot.remains<=gcd*5 - Cast Rend if you don't have Cleave talented and Rend Dot has at most 5 global cooldowns left on the target, or isn't on it
simc
rend,if=!talent.cleave&dot.rend_dot.remains<=gcd*5 - Cast Bladestorm if there are exactly 2 enemies
simc
bladestorm,if=active_enemies=2 - Cast Slam
simc
slam - Cast Wrecking Throw
simc
wrecking_throw
Is it true that you have Slayer's Dominance talented and there are more than 2 enemies?Not set
If so, switch to Slayer AoE, and nothing below is checked
simc
run_action_list,name=slayer_aoe,if=talent.slayers_dominance&active_enemies>2Slayer AoE20 lines
- Cast Cleave if Rend Dot isn't on the target and you have Rend talented
simc
cleave,if=!dot.rend_dot.remains&talent.rend - Cast Sweeping Strikes
simc
sweeping_strikes - Cast Avatar
simc
avatar - Cast Ravager if Colossus Smash is active on the target
simc
ravager,if=debuff.colossus_smash.up - Cast Execute if Sudden Death has exactly 2 stacks and Colossus Smash comes off cooldown within 2 s
simc
execute,if=buff.sudden_death.stack=2&cooldown.colossus_smash.remains<2 - Cast Colossus Smash
simc
colossus_smash - Cast Cleave if Collateral Damage has exactly 3 stacks
simc
cleave,if=buff.collateral_damage.stack=3 - Cast Bladestorm
simc
bladestorm - Cast Execute if Sudden Death has exactly 2 stacks
simc
execute,if=buff.sudden_death.stack=2 - Cast Cleave
simc
cleave - Cast Heroic Strike if you don't have Fervor of Battle talented
simc
heroic_strike,if=!talent.fervor_of_battle - Cast Overpower if you have Dreadnaught talented and Overpower has exactly 2 charges
simc
overpower,if=talent.dreadnaught&charges=2 - Cast Execute if Sudden Death is active
simc
execute,if=buff.sudden_death.up - Cast Overpower if you have Dreadnaught talented
simc
overpower,if=talent.dreadnaught - Cast Execute
simc
execute - Cast Mortal Strike
simc
mortal_strike - Cast Overpower if you don't have Dreadnaught talented
simc
overpower,if=!talent.dreadnaught - Cast Slam
simc
slam - Cast Wrecking Throw
simc
wrecking_throw - Cast Storm Bolt if Bladestorm is active
simc
storm_bolt,if=buff.bladestorm.up
Is it true that you have Slayer's Dominance talented and execute phase is true?Not set
If so, switch to Slayer execute, and nothing below is checked
target on the enemy with the lowest target's healthsimc
run_action_list,name=slayer_execute,target_if=min:target.health.pct,if=talent.slayers_dominance&variable.execute_phaseSlayer execute16 lines
- Cast Sweeping Strikes if there are exactly 2 enemies
simc
sweeping_strikes,if=active_enemies=2 - Cast Cleave if Rend Dot has less than 2 s left on the target, or isn't on it and you don't have Bloodletting talented
simc
cleave,if=dot.rend_dot.remains<2&!talent.bloodletting - Cast Rend if Rend Dot has less than 2 s left on the target, or isn't on it and you don't have Bloodletting talented and you don't have Cleave talented
simc
rend,if=dot.rend_dot.remains<2&!talent.bloodletting&!talent.cleave - Cast Avatar if Colossus Smash is active on the target or Colossus Smash has more than one global cooldown of cooldown left or the target dies within 20 s
simc
avatar,if=debuff.colossus_smash.up|cooldown.colossus_smash.remains>gcd|target.time_to_die<=20 - Cast Colossus Smash
simc
colossus_smash - Cast Heroic Strike
simc
heroic_strike - Cast Bladestorm if Colossus Smash is active on the target or Colossus Smash has more than 25 s of cooldown left or Avatar is active or Executioner's Precision has exactly 2 stacks
simc
bladestorm,if=debuff.colossus_smash.up|cooldown.colossus_smash.remains>25|buff.avatar.up|buff.executioners_precision.stack=2 - Cast Mortal Strike if Executioner's Precision has exactly 2 stacks
simc
mortal_strike,if=buff.executioners_precision.stack=2 - Cast Overpower if Opportunist has exactly 2 stacks and you have Opportunist talented
simc
overpower,if=buff.opportunist.stack=2&talent.opportunist - Cast Execute if Sudden Death is active and Executioner is active
simc
execute,if=buff.sudden_death.up&buff.executioner.stack>0 - Cast Execute if you have more than 40 Rage
simc
execute,if=rage>40 - Cast Cleave if Collateral Damage has exactly 3 stacks
simc
cleave,if=buff.collateral_damage.stack=3 - Cast Overpower
simc
overpower - Cast Execute
simc
execute - Cast Wrecking Throw
simc
wrecking_throw - Cast Storm Bolt if Bladestorm is active
simc
storm_bolt,if=buff.bladestorm.up
Is it true that you have Slayer's Dominance talented?Not set
If so, switch to Slayer st, and nothing below is checked
simc
run_action_list,name=slayer_st,if=talent.slayers_dominanceSlayer st19 lines
- Cast Sweeping Strikes if there are exactly 2 enemies
simc
sweeping_strikes,if=active_enemies=2 - Cast Cleave if Rend Dot has at most one global cooldown left on the target, or isn't on it or (Colossus Smash comes off cooldown within 2 s and Rend Dot has at most 10 s left on the target, or isn't on it)
simc
cleave,if=dot.rend_dot.remains<=gcd|cooldown.colossus_smash.remains<2&dot.rend_dot.remains<=10 - Cast Rend if you don't have Cleave talented and ((Rend Dot has at most one global cooldown left on the target, or isn't on it and there are fewer than 2 enemies) or (Colossus Smash comes off cooldown within 2 s and Rend Dot has at most 10 s left on the target, or isn't on it and there are fewer than 2 enemies))
simc
rend,if=!talent.cleave&(dot.rend_dot.remains<=gcd&active_enemies<2|cooldown.colossus_smash.remains<2&dot.rend_dot.remains<=10&active_enemies<2) - Cast Avatar if Colossus Smash is active on the target or (Colossus Smash comes off cooldown within 10 s and Colossus Smash has more than one global cooldown of cooldown left)
simc
avatar,if=debuff.colossus_smash.up|cooldown.colossus_smash.remains<10&cooldown.colossus_smash.remains>gcd - Cast Ravager if Colossus Smash comes off cooldown within one global cooldown
simc
ravager,if=cooldown.colossus_smash.remains<=gcd - Cast Execute if Sudden Death has exactly 2 stacks or (Bladestorm is off cooldown and Imminent Demise has fewer than 1 stack)
simc
execute,if=buff.sudden_death.stack=2|cooldown.bladestorm.ready&buff.imminent_demise.stack<1 - Cast Colossus Smash if Sudden Death has fewer than 2 stacks
simc
colossus_smash,if=buff.sudden_death.stack<2 - Cast Bladestorm if Colossus Smash is active on the target or Avatar is active
simc
bladestorm,if=debuff.colossus_smash.up|buff.avatar.up - Cast Heroic Strike
simc
heroic_strike - Cast Overpower if Opportunist has exactly 2 stacks and you have Opportunist talented
simc
overpower,if=buff.opportunist.stack=2&talent.opportunist - Cast Cleave if Collateral Damage has exactly 3 stacks and there are exactly 2 enemies
simc
cleave,if=buff.collateral_damage.stack=3&active_enemies=2 - Cast Mortal Strike
simc
mortal_strike - Cast Execute if Sudden Death is active and Executioner is active
simc
execute,if=buff.sudden_death.up&buff.executioner.up - Cast Overpower
simc
overpower - Cast Cleave if there are exactly 2 enemies or Rend Dot has at most 5 s left on the target, or isn't on it
simc
cleave,if=active_enemies=2|dot.rend_dot.remains<=5 - Cast Rend if you don't have Cleave talented and Rend Dot has at most 5 s left on the target, or isn't on it
simc
rend,if=!talent.cleave&dot.rend_dot.remains<=5 - Cast Slam
simc
slam - Cast Wrecking Throw if there is a single enemy
simc
wrecking_throw,if=active_enemies=1 - Cast Storm Bolt if Bladestorm is active
simc
storm_bolt,if=buff.bladestorm.up
Read from ActionPriorityLists/default/warrior_arms.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.
Blizzard’s own suggestion system (the one-button rotation), as simc carries it. It is simpler than SimulationCraft’s list and is not what Cogspark simulates.
§2Decision tree
Set what you know. The tree lights the lists the sim checks, top to bottom; in each list it presses the first ability whose conditions hold and that is ready. Readiness (cooldowns, resources) isn’t in the list, so a lit ability is the first one allowed, not a promise it is cast.
- The main loop
- Cooldowns
- Assisted Combat
Before the pull, done once before the fight starts (2 steps)
Before the pull2 lines
- Record your stats before the pull (sim bookkeeping)
simc
snapshot_stats - Cast Battle Stance
simc
battle_stance,toggle=on
The main loop4 lines
go through Cooldowns, then carry on below if nothing there fits
simc
call_action_list,name=cooldownsCooldowns7 lines
- Use your trinketsSome cooldowns are not used by the Assisted Combat system. This simple default cooldown usage has been provided by simc.
simc
use_items - Drink a potion
simc
potion - Cast Blood Fury
simc
blood_fury - Cast Berserking
simc
berserking - Cast Fireblood
simc
fireblood - Cast Ancestral Call
simc
ancestral_call - Cast Avatar
simc
avatar
go through Assisted Combat, then carry on below if nothing there fits
simc
call_action_list,name=assisted_combatAssisted Combat19 lines
- Cast Battle Shout if Battle Shout Highlight is activeThis is the default action priority list from the game's Assisted Combat system.
simc
battle_shout,if=buff.battle_shout_highlight.up - Cast Cleave if Rend isn't on the target and you have Rend talented and there are more than 3 enemies
simc
cleave,if=!dot.rend.ticking&talent.rend&active_enemies>3 - Cast Rend if Rend isn't on the target
simc
rend,if=!dot.rend.ticking - Cast Sweeping Strikes if there are more than 2 enemies
simc
sweeping_strikes,if=active_enemies>2 - Cast Ravager
simc
ravager - Cast Colossus Smash if your distance to the target is at most 6(Overridden from 'target.distance<=5')
simc
colossus_smash,if=target.distance<=6 - Cast Avatar if Slam is off cooldown
simc
avatar,if=cooldown.slam.ready - Cast Whirlwind if your distance to the target is at most 6 and you have Cleave talented and there are more than 3 enemies(Overridden from 'target.distance<=5&talent.cleave&active_enemies>3')
simc
whirlwind,if=target.distance<=6&talent.cleave&active_enemies>3 - Cast Demolish
simc
demolish - Cast Bladestorm if your distance to the target is at most 10
simc
bladestorm,if=target.distance<=10 - Cast Slam if Master Of Warfare Proc is active
simc
slam,if=buff.master_of_warfare_proc.up - Cast Mortal Strike
simc
mortal_strike - Cast Execute
simc
execute - Cast Overpower
simc
overpower - Cast Whirlwind if there are more than 3 enemies
simc
whirlwind,if=active_enemies>3 - Cast Slam if you have 50 or more Rage
simc
slam,if=rage>=50 - Cast Heroic Throw if your distance to the target is more than 15
simc
heroic_throw,if=target.distance>15 - Cast Slam
simc
slam
- Start auto-attacking
simc
auto_attack - Cast Charge if at most 0.5 s into the fight or the distance you still have to move is more than 5
simc
charge,if=time<=0.5|movement.distance>5
Read from ActionPriorityLists/assisted_combat/warrior_arms.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.