You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

210 lines
14 KiB

## https://github.com/simulationcraft/simc/blob/thewarwithin/ActionPriorityLists/default/warrior_arms.simc
actions.precombat+=/battle_shout
actions.precombat+=/battle_stance,toggle=on
actions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.treacherous_transmitter
actions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.treacherous_transmitter
# Evaluates a trinkets cooldown, divided by avatar. If it's value has no remainder return 1, else return 0.5.
actions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=trinket.1.has_use_buff&(trinket.1.cooldown.duration%%cooldown.avatar.duration=0)
actions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=trinket.2.has_use_buff&(trinket.2.cooldown.duration%%cooldown.avatar.duration=0)
actions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff|(trinket.1.has_stat.any_dps&!variable.trinket_1_exclude)
actions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff|(trinket.2.has_stat.any_dps&!variable.trinket_2_exclude)
actions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs|variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(1.5+trinket.2.has_buff.strength)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(1.5+trinket.1.has_buff.strength)*(variable.trinket_1_sync))
actions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.algethar_puzzle_box
actions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.algethar_puzzle_box
actions+=/charge,if=time<=0.5|movement.distance>8
actions+=/potion,if=gcd.remains=0&debuff.colossus_smash.remains>8|boss&fight_remains<25
actions+=/pummel,if=target.debuff.casting.react
actions+=/call_action_list,name=variables
actions+=/call_action_list,name=trinkets
actions+=/arcane_torrent,if=cooldown.mortal_strike.remains>1.5&rage<50
actions+=/lights_judgment,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains
actions+=/bag_of_tricks,if=debuff.colossus_smash.down&cooldown.mortal_strike.remains
actions+=/berserking,if=fight_remains>180&buff.avatar.up|boss&target.time_to_die<180&variable.execute_phase&buff.avatar.up|boss&fight_remains<20
actions+=/blood_fury,if=debuff.colossus_smash.up
actions+=/fireblood,if=debuff.colossus_smash.up
actions+=/ancestral_call,if=debuff.colossus_smash.up
## actions+=/invoke_external_buff,name=power_infusion,if=debuff.colossus_smash.up&fight_remains>=135|variable.execute_phase&buff.avatar.up|fight_remains<=25
actions+=/run_action_list,name=colossus_aoe,strict=1,if=talent.demolish&active_enemies>2
actions+=/run_action_list,name=colossus_execute,cycle_targets=1,strict=1,if=talent.demolish&variable.execute_phase
actions+=/run_action_list,name=colossus_sweep,strict=1,if=talent.demolish&active_enemies=2&!variable.execute_phase
actions+=/run_action_list,name=colossus_st,strict=1,if=talent.demolish
actions+=/run_action_list,name=slayer_aoe,strict=1,if=!talent.demolish&active_enemies>2
actions+=/run_action_list,name=slayer_execute,cycle_targets=1,strict=1,if=!talent.demolish&variable.execute_phase
actions+=/run_action_list,name=slayer_sweep,strict=1,if=!talent.demolish&active_enemies=2&!variable.execute_phase
actions+=/run_action_list,name=slayer_st,strict=1,if=!talent.demolish
actions.colossus_aoe+=/cleave,if=!dot.deep_wounds.remains
actions.colossus_aoe+=/thunder_clap,if=!dot.rend.remains
actions.colossus_aoe+=/thunderous_roar
actions.colossus_aoe+=/avatar
actions.colossus_aoe+=/sweeping_strikes
actions.colossus_aoe+=/ravager
actions.colossus_aoe+=/warbreaker
actions.colossus_aoe+=/champions_spear
actions.colossus_aoe+=/colossus_smash
actions.colossus_aoe+=/cleave
actions.colossus_aoe+=/bladestorm,if=talent.unhinged|talent.merciless_bonegrinder
actions.colossus_aoe+=/thunder_clap,if=dot.rend.remains<5
actions.colossus_aoe+=/demolish,if=buff.colossal_might.stack=10&(debuff.colossus_smash.remains>=2|cooldown.colossus_smash.remains>=7)
actions.colossus_aoe+=/overpower,if=talent.dreadnaught
actions.colossus_aoe+=/mortal_strike
actions.colossus_aoe+=/overpower
actions.colossus_aoe+=/thunder_clap
actions.colossus_aoe+=/skullsplitter
actions.colossus_aoe+=/execute
actions.colossus_aoe+=/bladestorm
actions.colossus_aoe+=/whirlwind
actions.colossus_execute+=/sweeping_strikes,if=active_enemies=2
actions.colossus_execute+=/rend,if=dot.rend.remains<=gcd&!talent.bloodletting
actions.colossus_execute+=/thunderous_roar
actions.colossus_execute+=/champions_spear
actions.colossus_execute+=/ravager,if=cooldown.colossus_smash.remains<=gcd
actions.colossus_execute+=/avatar
actions.colossus_execute+=/colossus_smash
actions.colossus_execute+=/warbreaker
actions.colossus_execute+=/execute,if=buff.juggernaut.remains<=gcd&talent.juggernaut
actions.colossus_execute+=/skullsplitter,if=rage<40
actions.colossus_execute+=/demolish,if=debuff.colossus_smash.up
actions.colossus_execute+=/mortal_strike,if=debuff.executioners_precision.stack=2&!dot.ravager.remains|!talent.executioners_precision|talent.battlelord&debuff.executioners_precision.stack>0
actions.colossus_execute+=/overpower,if=rage<90
actions.colossus_execute+=/execute,if=rage>=40&talent.executioners_precision
actions.colossus_execute+=/overpower
actions.colossus_execute+=/bladestorm
actions.colossus_execute+=/execute
actions.colossus_st+=/rend,if=dot.rend.remains<=gcd
actions.colossus_st+=/thunderous_roar
actions.colossus_st+=/ravager,if=cooldown.colossus_smash.remains<=gcd
actions.colossus_st+=/champions_spear
actions.colossus_st+=/avatar,if=raid_event.adds.in>15
actions.colossus_st+=/colossus_smash
actions.colossus_st+=/warbreaker
actions.colossus_st+=/mortal_strike
actions.colossus_st+=/demolish
actions.colossus_st+=/skullsplitter
actions.colossus_st+=/execute
actions.colossus_st+=/overpower
actions.colossus_st+=/rend,if=dot.rend.remains<=gcd*5
actions.colossus_st+=/slam
actions.colossus_sweep+=/thunder_clap,if=!dot.rend.remains&!buff.sweeping_strikes.up
actions.colossus_sweep+=/rend,if=dot.rend.remains<=gcd&buff.sweeping_strikes.up
actions.colossus_sweep+=/thunderous_roar
actions.colossus_sweep+=/sweeping_strikes
actions.colossus_sweep+=/champions_spear
actions.colossus_sweep+=/ravager,if=cooldown.colossus_smash.ready
actions.colossus_sweep+=/avatar
actions.colossus_sweep+=/colossus_smash
actions.colossus_sweep+=/warbreaker
actions.colossus_sweep+=/mortal_strike
actions.colossus_sweep+=/demolish,if=debuff.colossus_smash.up
actions.colossus_sweep+=/overpower
actions.colossus_sweep+=/execute
actions.colossus_sweep+=/whirlwind,if=talent.fervor_of_battle
actions.colossus_sweep+=/cleave,if=talent.fervor_of_battle
actions.colossus_sweep+=/thunder_clap,if=dot.rend.remains<=8&buff.sweeping_strikes.down
actions.colossus_sweep+=/rend,if=dot.rend.remains<=5
actions.colossus_sweep+=/slam
actions.slayer_aoe+=/thunder_clap,if=!dot.rend.remains
actions.slayer_aoe+=/thunderous_roar
actions.slayer_aoe+=/avatar
actions.slayer_aoe+=/champions_spear
actions.slayer_aoe+=/ravager,if=cooldown.colossus_smash.remains<=gcd
actions.slayer_aoe+=/warbreaker
actions.slayer_aoe+=/colossus_smash
actions.slayer_aoe+=/cleave
actions.slayer_aoe+=/execute,if=buff.sudden_death.up&buff.imminent_demise.stack<3|buff.juggernaut.remains<3&talent.juggernaut
actions.slayer_aoe+=/bladestorm
actions.slayer_aoe+=/overpower,if=buff.sweeping_strikes.up&(buff.opportunist.up|talent.dreadnaught&!talent.juggernaut)
actions.slayer_aoe+=/mortal_strike,if=buff.sweeping_strikes.up
actions.slayer_aoe+=/execute,if=buff.sweeping_strikes.up&debuff.executioners_precision.stack<2&talent.executioners_precision|debuff.marked_for_execution.up
actions.slayer_aoe+=/skullsplitter,if=buff.sweeping_strikes.up
actions.slayer_aoe+=/overpower,if=buff.opportunist.up|talent.dreadnaught
actions.slayer_aoe+=/mortal_strike
actions.slayer_aoe+=/overpower
actions.slayer_aoe+=/thunder_clap
actions.slayer_aoe+=/execute
actions.slayer_aoe+=/whirlwind
actions.slayer_aoe+=/skullsplitter
actions.slayer_aoe+=/slam
actions.slayer_aoe+=/storm_bolt,if=buff.bladestorm.up
actions.slayer_execute+=/sweeping_strikes,if=active_enemies=2
actions.slayer_execute+=/rend,if=dot.rend.remains<=gcd&!talent.bloodletting
actions.slayer_execute+=/thunderous_roar
actions.slayer_execute+=/avatar,if=cooldown.colossus_smash.remains<=5|debuff.colossus_smash.up
actions.slayer_execute+=/champions_spear,if=debuff.colossus_smash.up|buff.avatar.up
actions.slayer_execute+=/ravager,if=cooldown.colossus_smash.remains<=gcd
actions.slayer_execute+=/warbreaker
actions.slayer_execute+=/colossus_smash
actions.slayer_execute+=/execute,if=buff.juggernaut.remains<=gcd*2&talent.juggernaut
actions.slayer_execute+=/bladestorm,if=(debuff.executioners_precision.stack=2&(debuff.colossus_smash.remains>4|cooldown.colossus_smash.remains>15))|!talent.executioners_precision
actions.slayer_execute+=/skullsplitter,if=rage<=40
actions.slayer_execute+=/overpower,if=buff.martial_prowess.stack<2&buff.opportunist.up&talent.opportunist&(talent.bladestorm|talent.ravager&rage<85)
actions.slayer_execute+=/mortal_strike,if=dot.rend.remains<2|debuff.executioners_precision.stack=2&!dot.ravager.remains
actions.slayer_execute+=/overpower,if=rage<=40&buff.martial_prowess.stack<2&talent.fierce_followthrough
actions.slayer_execute+=/execute
actions.slayer_execute+=/overpower
actions.slayer_execute+=/storm_bolt,if=buff.bladestorm.up
actions.slayer_st+=/rend,if=dot.rend.remains<=gcd
actions.slayer_st+=/thunderous_roar
actions.slayer_st+=/avatar,if=cooldown.colossus_smash.remains<=5|debuff.colossus_smash.up
actions.slayer_st+=/champions_spear,if=debuff.colossus_smash.up|buff.avatar.up
actions.slayer_st+=/ravager,if=cooldown.colossus_smash.remains<=gcd
actions.slayer_st+=/colossus_smash
actions.slayer_st+=/warbreaker
actions.slayer_st+=/execute,if=buff.juggernaut.remains<=gcd*2&talent.juggernaut|buff.sudden_death.stack=2|buff.sudden_death.remains<=gcd*3|debuff.marked_for_execution.stack=3
actions.slayer_st+=/overpower,if=buff.opportunist.up
actions.slayer_st+=/mortal_strike
actions.slayer_st+=/bladestorm,if=(cooldown.colossus_smash.remains>=gcd*4|cooldown.warbreaker.remains>=gcd*4)|debuff.colossus_smash.remains>=gcd*4
actions.slayer_st+=/skullsplitter
actions.slayer_st+=/overpower
actions.slayer_st+=/rend,if=dot.rend.remains<=8
actions.slayer_st+=/execute,if=!talent.juggernaut
actions.slayer_st+=/cleave
actions.slayer_st+=/slam
actions.slayer_st+=/storm_bolt,if=buff.bladestorm.up
actions.slayer_sweep+=/thunder_clap,if=!dot.rend.remains&!buff.sweeping_strikes.up
actions.slayer_sweep+=/thunderous_roar
actions.slayer_sweep+=/sweeping_strikes
actions.slayer_sweep+=/rend,if=dot.rend.remains<=gcd
actions.slayer_sweep+=/champions_spear
actions.slayer_sweep+=/avatar
actions.slayer_sweep+=/colossus_smash
actions.slayer_sweep+=/warbreaker
actions.slayer_sweep+=/skullsplitter,if=buff.sweeping_strikes.up
actions.slayer_sweep+=/execute,if=buff.juggernaut.remains<=gcd*2|debuff.marked_for_execution.stack=3|buff.sudden_death.stack=2|buff.sudden_death.remains<=gcd*3
actions.slayer_sweep+=/bladestorm,if=(cooldown.colossus_smash.remains>=gcd*4|cooldown.warbreaker.remains>=gcd*4)|debuff.colossus_smash.remains>=gcd*4
actions.slayer_sweep+=/overpower,if=buff.opportunist.up
actions.slayer_sweep+=/mortal_strike
actions.slayer_sweep+=/overpower
actions.slayer_sweep+=/thunder_clap,if=dot.rend.remains<=8&buff.sweeping_strikes.down
actions.slayer_sweep+=/rend,if=dot.rend.remains<=5
actions.slayer_sweep+=/cleave,if=talent.fervor_of_battle&!buff.martial_prowess.up
actions.slayer_sweep+=/whirlwind,if=talent.fervor_of_battle
actions.slayer_sweep+=/execute,if=!talent.juggernaut
actions.slayer_sweep+=/slam
actions.slayer_sweep+=/storm_bolt,if=buff.bladestorm.up
# Trinkets
## actions.trinkets+=/do_treacherous_transmitter_task
actions.trinkets+=/use_item,name=treacherous_transmitter,if=(variable.adds_remain|variable.st_planning)&cooldown.avatar.remains<3
# Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar.
actions.trinkets+=/use_item,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&(!buff.avatar.up&trinket.1.cast_time>0|!trinket.1.cast_time>0)&buff.avatar.up&(variable.trinket_2_exclude|!trinket.2.has_cooldown|trinket.2.cooldown.remains|variable.trinket_priority=1)|trinket.1.proc.any_dps.duration>=fight_remains&boss
actions.trinkets+=/use_item,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&(!buff.avatar.up&trinket.2.cast_time>0|!trinket.2.cast_time>0)&buff.avatar.up&(variable.trinket_1_exclude|!trinket.1.has_cooldown|trinket.1.cooldown.remains|variable.trinket_priority=2)|trinket.2.proc.any_dps.duration>=fight_remains&boss
# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.
actions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&(trinket.1.cast_time>0&!buff.avatar.up|!trinket.1.cast_time>0)&!variable.trinket_1_manual&(!variable.trinket_1_buffs&(trinket.2.cooldown.remains|!variable.trinket_2_buffs)|(trinket.1.cast_time>0&!buff.avatar.up|!trinket.1.cast_time>0)|cooldown.avatar.remains_expected>20)
actions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&(trinket.2.cast_time>0&!buff.avatar.up|!trinket.2.cast_time>0)&!variable.trinket_2_manual&(!variable.trinket_2_buffs&(trinket.1.cooldown.remains|!variable.trinket_1_buffs)|(trinket.2.cast_time>0&!buff.avatar.up|!trinket.2.cast_time>0)|cooldown.avatar.remains_expected>20)
actions.trinkets+=/use_item,slot=main_hand,if=!equipped.fyralath_the_dreamrender&!equipped.bestinslots&(!variable.trinket_1_buffs|trinket.1.cooldown.remains)&(!variable.trinket_2_buffs|trinket.2.cooldown.remains)
actions.trinkets+=/use_item,name=bestinslots,if=cooldown.avatar.remains>20|(buff.avatar.up&(!trinket.1.has_cooldown&!trinket.2.has_cooldown))
# Variables
actions.variables+=/variable,name=st_planning,value=active_enemies=1
actions.variables+=/variable,name=adds_remain,value=active_enemies>1
actions.variables+=/variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)|target.health.pct<20