## https://github.com/simulationcraft/simc/blob/thewarwithin/ActionPriorityLists/default/warrior_fury.simc actions.precombat+=/battle_shout actions.precombat+=/berserker_stance,toggle=on actions.precombat+=/variable,name=treacherous_transmitter_precombat_cast,value=2 actions.precombat+=/use_item,name=treacherous_transmitter actions.precombat+=/recklessness,if=!equipped.fyralath_the_dreamrender actions.precombat+=/avatar 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 or odyns fur. 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|trinket.1.cooldown.duration%%cooldown.odyns_fury.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|trinket.2.cooldown.duration%%cooldown.odyns_fury.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.precombat+=/variable,name=execute_phase,value=(talent.massacre.enabled&target.health.pct<35)|target.health.pct<20 actions.precombat+=/variable,name=on_gcd_racials,value=buff.recklessness.down&buff.avatar.down&rage<80&buff.sudden_death.down&!cooldown.bladestorm.ready&(!cooldown.execute.ready|!variable.execute_phase) actions+=/pummel,if=target.debuff.casting.react actions+=/charge,if=time<=0.5|movement.distance>5 actions+=/heroic_leap,if=movement.distance>25 actions+=/potion,if=boss&(fight_remains>300|boss&fight_remains<35&buff.recklessness.up|boss&fight_remains<25) actions+=/use_item,name=treacherous_transmitter ## Trinkets The trinket with the highest estimated value, will be used first and paired with Avatar. actions+=/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 actions+=/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 ## 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+=/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+=/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+=/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+=/use_item,name=bestinslots,if=target.time_to_die>120&(cooldown.avatar.remains>20&(trinket.1.cooldown.remains|trinket.2.cooldown.remains)|cooldown.avatar.remains>20&(!trinket.1.has_cooldown|!trinket.2.has_cooldown))|target.time_to_die<=120&target.health.pct<35&cooldown.avatar.remains>85|boss&target.time_to_die<15 actions+=/lights_judgment,if=buff.recklessness.down&buff.avatar.down&rage<80&buff.sudden_death.down&!cooldown.bladestorm.ready&(!cooldown.execute.ready|!variable.execute_phase) actions+=/bag_of_tricks,if=buff.recklessness.down&buff.avatar.down&rage<80&buff.sudden_death.down&!cooldown.bladestorm.ready&(!cooldown.execute.ready|!variable.execute_phase) actions+=/berserking,if=buff.recklessness.up actions+=/blood_fury actions+=/fireblood actions+=/ancestral_call ## actions+=/invoke_external_buff,name=power_infusion,if=buff.avatar.remains>15&fight_remains>=135|variable.execute_phase&buff.avatar.up|fight_remains<=25 actions+=/run_action_list,name=slayer,strict=1,if=!talent.lightning_strikes actions+=/run_action_list,name=thane,strict=1,if=talent.lightning_strikes actions.slayer+=/recklessness actions.slayer+=/avatar,if=cooldown.recklessness.remains actions.slayer+=/execute,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<=gcd actions.slayer+=/champions_spear,if=buff.enrage.up&(cooldown.bladestorm.remains>=2|cooldown.bladestorm.remains>=16&debuff.marked_for_execution.stack=3) actions.slayer+=/bladestorm,if=buff.enrage.up&(talent.reckless_abandon&cooldown.avatar.remains>=24|talent.anger_management&cooldown.recklessness.remains>=24) actions.slayer+=/odyns_fury,if=(buff.enrage.up|talent.titanic_rage)&cooldown.avatar.remains actions.slayer+=/whirlwind,if=active_enemies>=2&talent.meat_cleaver&buff.meat_cleaver.down actions.slayer+=/execute,if=buff.sudden_death.stack=2&buff.sudden_death.remains<7 actions.slayer+=/execute,if=buff.sudden_death.up&buff.sudden_death.remains<2 actions.slayer+=/execute,if=buff.sudden_death.up&buff.imminent_demise.stack<3&cooldown.bladestorm.remains<25 actions.slayer+=/execute,if=debuff.marked_for_execution.up&buff.brutal_finish.up&debuff.overwhelmed.stack<10 actions.slayer+=/onslaught,if=talent.tenderize&buff.brutal_finish.up actions.slayer+=/rampage,if=!buff.enrage.up|buff.slaughtering_strikes.stack>=4 actions.slayer+=/crushing_blow,if=action.raging_blow.charges=2|buff.brutal_finish.up&(!debuff.champions_might.up|debuff.champions_might.up&debuff.champions_might.remains>gcd) actions.slayer+=/thunderous_roar,if=buff.enrage.up&!buff.brutal_finish.up actions.slayer+=/execute,if=buff.ashen_juggernaut.up&buff.ashen_juggernaut.remains<3 actions.slayer+=/execute,if=debuff.marked_for_execution.stack=3 actions.slayer+=/bloodbath,if=buff.bloodcraze.stack>=1|(talent.uproar&dot.bloodbath_dot.remains<40&talent.bloodborne)|buff.enrage.up&buff.enrage.remainsgcd) actions.slayer+=/rampage,if=action.raging_blow.charges<=1&rage>=100&talent.anger_management&buff.recklessness.down actions.slayer+=/bloodthirst,if=target.health.pct<35&talent.vicious_contempt&buff.brutal_finish.up&buff.enrage.up&buff.bloodcraze.stack>=2|active_enemies>=5 actions.slayer+=/rampage,if=rage>=130 actions.slayer+=/rampage,if=rage>=115&talent.reckless_abandon&buff.recklessness.up&buff.slaughtering_strikes.stack>=3 actions.slayer+=/bloodbath,if=(buff.bloodcraze.stack>=4|crit_pct_current>=85) actions.slayer+=/crushing_blow actions.slayer+=/bloodbath,if=target.health.pct<35&talent.vicious_contempt actions.slayer+=/bloodbath actions.slayer+=/raging_blow,if=buff.opportunist.up actions.slayer+=/bloodthirst,if=target.health.pct<35&talent.vicious_contempt&buff.bloodcraze.stack>=2 actions.slayer+=/rampage,if=rage>=100&talent.anger_management&buff.recklessness.up actions.slayer+=/bloodthirst,if=buff.bloodcraze.stack>=4|crit_pct_current>=85 actions.slayer+=/raging_blow actions.slayer+=/bloodthirst actions.slayer+=/execute,if=target.health.pct<35&talent.massacre|target.health.pct<20 actions.slayer+=/rampage,if=talent.unbridled_ferocity actions.slayer+=/rampage actions.slayer+=/execute actions.slayer+=/onslaught,if=talent.tenderize actions.slayer+=/whirlwind,if=talent.improved_whirlwind actions.slayer+=/storm_bolt,if=buff.bladestorm.up actions.thane+=/recklessness actions.thane+=/avatar actions.thane+=/ravager actions.thane+=/thunder_blast,if=buff.enrage.up&talent.meat_cleaver actions.thane+=/thunder_clap,if=buff.meat_cleaver.down&talent.meat_cleaver&active_enemies>=2 actions.thane+=/thunderous_roar,if=buff.enrage.up actions.thane+=/champions_spear,if=buff.enrage.up actions.thane+=/odyns_fury,if=(buff.enrage.up|talent.titanic_rage)&cooldown.avatar.remains actions.thane+=/rampage,if=buff.enrage.down actions.thane+=/execute,if=talent.ashen_juggernaut&buff.ashen_juggernaut.remains<=gcd&buff.enrage.up actions.thane+=/rampage,if=talent.bladestorm&cooldown.bladestorm.remains<=gcd&!debuff.champions_might.up actions.thane+=/bladestorm,if=buff.enrage.up&talent.unhinged actions.thane+=/bloodbath,if=buff.bloodcraze.stack>=2 actions.thane+=/rampage,if=rage>=115&talent.reckless_abandon&buff.recklessness.up&buff.slaughtering_strikes.stack>=3 actions.thane+=/crushing_blow actions.thane+=/bloodbath actions.thane+=/onslaught,if=talent.tenderize actions.thane+=/rampage actions.thane+=/bloodthirst,if=talent.vicious_contempt&target.health.pct<35&buff.bloodcraze.stack>=2|!dot.ravager.remains&buff.bloodcraze.stack>=3|active_enemies>=6 actions.thane+=/raging_blow actions.thane+=/execute,if=talent.ashen_juggernaut actions.thane+=/thunder_blast actions.thane+=/bloodthirst actions.thane+=/execute actions.thane+=/thunder_clap