# Check if trinkets have buff effects actions+=/variable,name=trinket_1_buffs,value=trinket.1.has_use_buff|(trinket.1.has_buff.strength|trinket.1.has_buff.mastery|trinket.1.has_buff.versatility|trinket.1.has_buff.haste|trinket.1.has_buff.crit) actions+=/variable,name=trinket_2_buffs,value=trinket.2.has_use_buff|(trinket.2.has_buff.strength|trinket.2.has_buff.mastery|trinket.2.has_buff.versatility|trinket.2.has_buff.haste|trinket.2.has_buff.crit) actions+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell|trinket.1.is.whispering_incarnate_icon actions+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell|trinket.2.is.whispering_incarnate_icon # Don't spend fury when fel dev soon to maximize fel dev uptime actions+=/variable,name=dont_cleave,value=(cooldown.fel_devastation.remains<=(action.soul_cleave.execute_time+gcd.remains))&fury<80 # Check if fiery demise is active and spread actions+=/variable,name=fd_ready,value=talent.fiery_brand&talent.fiery_demise&active_dot.fiery_brand>0 # Don't spend fury when fel dev soon to maximize fel dev uptime actions+=/variable,name=dont_cleave,value=(cooldown.fel_devastation.remains<=(action.soul_cleave.execute_time+gcd.remains))&fury<80 # When to use Spirit Bomb with Focused Cleave actions+=/variable,name=single_target,value=spell_targets.spirit_bomb=1 actions+=/variable,name=small_aoe,value=spell_targets.spirit_bomb>=2&spell_targets.spirit_bomb<=5 actions+=/variable,name=big_aoe,value=spell_targets.spirit_bomb>=6 actions+=/variable,name=can_spb,op=setif,condition=variable.fd_ready,value=(variable.single_target&soul_fragments>=5)|(variable.small_aoe&soul_fragments>=4)|(variable.big_aoe&soul_fragments>=3),value_else=(variable.small_aoe&soul_fragments>=5)|(variable.big_aoe&soul_fragments>=4) actions+=/disrupt actions+=/consume_magic actions+=/infernal_strike,use_off_gcd=1 actions+=/demon_spikes,use_off_gcd=1,if=!buff.demon_spikes.up&!cooldown.pause_action.remains actions+=/metamorphosis actions+=/potion,use_off_gcd=1 ## actions+=/call_action_list,name=externals actions+=/call_action_list,name=trinkets actions+=/call_action_list,name=fiery_demise,strict=1,if=talent.fiery_brand&talent.fiery_demise&active_dot.fiery_brand>0 actions+=/call_action_list,name=maintenance actions+=/run_action_list,name=single_target,strict=1,if=variable.single_target actions+=/run_action_list,name=small_aoe,strict=1,if=variable.small_aoe actions+=/run_action_list,name=big_aoe,strict=1,if=variable.big_aoe ## actions.externals+=/invoke_external_buff,name=symbol_of_hope ## actions.externals+=/invoke_external_buff,name=power_infusion # Fiery demise window actions.fiery_demise+=/immolation_aura actions.fiery_demise+=/sigil_of_flame actions.fiery_demise+=/felblade,if=(cooldown.fel_devastation.remains<=(execute_time+gcd.remains))&fury<50 actions.fiery_demise+=/fel_devastation actions.fiery_demise+=/soul_carver actions.fiery_demise+=/the_hunt actions.fiery_demise+=/elysian_decree,line_cd=1.85 actions.fiery_demise+=/spirit_bomb,if=talent.focused_cleave&variable.can_spb_focused_cleave|!talent.focused_cleave&variable.can_spb_no_focused_cleave actions.fiery_demise+=/spirit_bomb,if=variable.can_spb actions.filler+=/sigil_of_chains,if=talent.cycle_of_binding.enabled&talent.sigil_of_chains.enabled actions.filler+=/sigil_of_misery,if=talent.cycle_of_binding.enabled&talent.sigil_of_misery.enabled actions.filler+=/sigil_of_silence,if=talent.cycle_of_binding.enabled&talent.sigil_of_silence.enabled actions.filler+=/throw_glaive # Maintenance & upkeep actions.maintenance+=/fiery_brand,if=talent.fiery_brand&((active_dot.fiery_brand=0&(cooldown.sigil_of_flame.remains<=(execute_time+gcd.remains)|cooldown.soul_carver.remains<=(execute_time+gcd.remains)|cooldown.fel_devastation.remains<=(execute_time+gcd.remains)))|(talent.down_in_flames&full_recharge_time<=(execute_time+gcd.remains))) actions.maintenance+=/sigil_of_flame,if=talent.ascending_flame|active_dot.sigil_of_flame=0 actions.maintenance+=/immolation_aura actions.maintenance+=/bulk_extraction,if=((5-soul_fragments)<=spell_targets)&soul_fragments<=2 actions.maintenance+=/spirit_bomb,if=variable.can_spb actions.maintenance+=/felblade,if=(fury.deficit>=40&active_enemies=1)|((cooldown.fel_devastation.remains<=(execute_time+gcd.remains))&fury<50) actions.maintenance+=/fracture,if=(cooldown.fel_devastation.remains<=(execute_time+gcd.remains))&fury<50 actions.maintenance+=/shear,if=(cooldown.fel_devastation.remains<=(execute_time+gcd.remains))&fury<50 # Don't overcap fury actions.maintenance+=/spirit_bomb,if=fury.deficit<=30&spell_targets>1&soul_fragments>=4 actions.maintenance+=/soul_cleave,if=fury.deficit<=30 # Single Target actions.single_target+=/the_hunt actions.single_target+=/soul_carver actions.single_target+=/fel_devastation,if=talent.collective_anguish|(talent.stoke_the_flames&talent.burning_blood) actions.single_target+=/elysian_decree actions.single_target+=/fel_devastation actions.single_target+=/soul_cleave,if=talent.focused_cleave&!variable.dont_cleave actions.single_target+=/fracture actions.single_target+=/shear actions.single_target+=/soul_cleave,if=!variable.dont_cleave actions.single_target+=/call_action_list,name=filler # 2-5 targets actions.small_aoe+=/the_hunt actions.small_aoe+=/fel_devastation,if=talent.collective_anguish.enabled|(talent.stoke_the_flames.enabled&talent.burning_blood.enabled) actions.small_aoe+=/elysian_decree,line_cd=1.85 actions.small_aoe+=/fel_devastation actions.small_aoe+=/soul_carver actions.small_aoe+=/spirit_bomb,if=soul_fragments>=5 actions.small_aoe+=/soul_cleave,if=talent.focused_cleave&soul_fragments<=1&!variable.dont_cleave actions.small_aoe+=/fracture actions.small_aoe+=/shear actions.small_aoe+=/soul_cleave,if=soul_fragments<=1&!variable.dont_cleave actions.small_aoe+=/call_action_list,name=filler # 6+ targets actions.big_aoe+=/fel_devastation,if=talent.collective_anguish|talent.stoke_the_flames actions.big_aoe+=/the_hunt actions.big_aoe+=/elysian_decree,line_cd=1.85 actions.big_aoe+=/fel_devastation actions.big_aoe+=/soul_carver actions.big_aoe+=/spirit_bomb,if=soul_fragments>=4 actions.big_aoe+=/fracture actions.big_aoe+=/shear actions.big_aoe+=/soul_cleave,if=!variable.dont_cleave actions.big_aoe+=/call_action_list,name=filler # Filler actions.filler+=/sigil_of_chains,if=talent.cycle_of_binding&talent.sigil_of_chains actions.filler+=/sigil_of_misery,if=talent.cycle_of_binding&talent.sigil_of_misery actions.filler+=/sigil_of_silence,if=talent.cycle_of_binding&talent.sigil_of_silence actions.filler+=/felblade actions.filler+=/throw_glaive # External buffs actions.externals+=/invoke_external_buff,name=symbol_of_hope actions.externals+=/invoke_external_buff,name=power_infusion # Trinkets prioritize damage dealing on use trinkets over trinkets that give buffs actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs actions.trinkets+=/use_item,use_off_gcd=1,slot=main_hand,if=(variable.trinket_1_buffs|trinket.1.cooldown.remains)&(variable.trinket_2_buffs|trinket.2.cooldown.remains) actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=variable.trinket_1_buffs&(buff.metamorphosis.up|cooldown.metamorphosis.remains>20)&(variable.trinket_2_exclude|trinket.2.cooldown.remains|!trinket.2.has_cooldown|variable.trinket_2_buffs) actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=variable.trinket_2_buffs&(buff.metamorphosis.up|cooldown.metamorphosis.remains>20)&(variable.trinket_1_exclude|trinket.1.cooldown.remains|!trinket.1.has_cooldown|variable.trinket_1_buffs)