actions.precombat+=/variable,name=trinket_sync_slot,value=1,if=trinket.1.has_stat.any_dps&(!trinket.2.has_stat.any_dps|trinket.1.cooldown.duration>=trinket.2.cooldown.duration) actions.precombat+=/variable,name=trinket_sync_slot,value=2,if=trinket.2.has_stat.any_dps&(!trinket.1.has_stat.any_dps|trinket.2.cooldown.duration>trinket.1.cooldown.duration) actions.precombat+=/variable,name=use_eye_beam_fury_condition,value=0 actions.precombat+=/arcane_torrent actions.precombat+=/fleshcraft,if=soulbind.pustule_eruption|soulbind.volatile_solvent # Executed every time the actor is available. actions=disrupt actions+=/consume_magic # Without Chaos Theory or Darkglare, Blade Dance with First Blood or at 3+ (2+ with Trail of Ruin) targets actions+=/variable,name=blade_dance,if=!runeforge.chaos_theory&!runeforge.darkglare_medallion,value=talent.first_blood.enabled|spell_targets.blade_dance1>=(3-talent.trail_of_ruin.enabled) # With Chaos Theory, Blade Dance when the buff is down, with First Blood at 2+ (1+ with Trail of Ruin) or with Essence Break at 4+ (3+ with Trail of Ruin) targets actions+=/variable,name=blade_dance,if=runeforge.chaos_theory|talent.chaos_theory,value=buff.chaos_theory.down|talent.first_blood.enabled|!talent.cycle_of_hatred.enabled&spell_targets.blade_dance1>=(4-talent.trail_of_ruin.enabled) # With Darkglare, Blade Dance at normal target count when buffed by a secondary effect, or always at 4T+ for non-Demonic actions+=/variable,name=blade_dance,if=runeforge.darkglare_medallion,value=talent.first_blood.enabled|(buff.metamorphosis.up|talent.trail_of_ruin.enabled|debuff.essence_break.up)&spell_targets.blade_dance1>=(3-talent.trail_of_ruin.enabled)|!talent.demonic.enabled&spell_targets.blade_dance1>=4 actions+=/variable,name=pooling_for_meta,value=!talent.demonic.enabled&cooldown.metamorphosis.remains<6&fury.deficit>30 actions+=/variable,name=pooling_for_blade_dance,value=variable.blade_dance&(fury<75-talent.first_blood.enabled*20) actions+=/variable,name=pooling_for_eye_beam,value=talent.demonic.enabled&!talent.blind_fury.enabled&cooldown.eye_beam.remains<(gcd.max*2)&fury.deficit>20 actions+=/variable,name=waiting_for_momentum,value=talent.momentum.enabled&!buff.momentum.up # With Agony Gaze, attempt to sync Eye Beam and cooldown usage for maximum duration, unless at 3T+ actions+=/variable,name=waiting_for_agony_gaze,if=runeforge.agony_gaze,value=!dot.sinful_brand.ticking&cooldown.sinful_brand.remains1&(variable.waiting_for_momentum|!talent.momentum&talent.tactical_retreat)&buff.tactical_retreat.down actions+=/fel_rush,if=(buff.unbound_chaos.up|variable.waiting_for_momentum&(!talent.unbound_chaos.enabled|!cooldown.immolation_aura.ready))&(charges=2|(raid_event.movement.in>10&raid_event.adds.in>10)) actions+=/run_action_list,name=demonic,if=talent.demonic.enabled actions+=/run_action_list,name=normal # Cast Metamorphosis if we will get a full Eye Beam refresh or if the encounter is almost over actions.cooldown=metamorphosis,if=!talent.demonic.enabled&(cooldown.eye_beam.remains>20|fight_remains<25) actions.cooldown+=/metamorphosis,if=talent.demonic.enabled&(cooldown.eye_beam.remains>20&(!variable.blade_dance|cooldown.blade_dance.remains>gcd.max)|fight_remains<25) actions.cooldown+=/potion,if=buff.metamorphosis.remains>25|fight_remains<60 actions.cooldown+=/use_item,name=wraps_of_electrostatic_potential actions.cooldown+=/use_item,name=ring_of_collapsing_futures,if=buff.temptation.down|fight_remains<30 actions.cooldown+=/use_item,name=cache_of_acquired_treasures,if=buff.acquired_axe.up&((active_enemies=desired_targets&raid_event.adds.in>60|active_enemies>desired_targets)&(active_enemies<3|cooldown.eye_beam.remains<20)|fight_remains<25) # Default use item logic actions.cooldown+=/use_items,slots=trinket1,if=variable.trinket_sync_slot=1&(buff.metamorphosis.up|(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.1.cooldown.duration%2))|fight_remains<=20)|(variable.trinket_sync_slot=2&!trinket.2.cooldown.ready)|!variable.trinket_sync_slot actions.cooldown+=/use_items,slots=trinket2,if=variable.trinket_sync_slot=2&(buff.metamorphosis.up|(!talent.demonic.enabled&cooldown.metamorphosis.remains>(fight_remains>?trinket.2.cooldown.duration%2))|fight_remains<=20)|(variable.trinket_sync_slot=1&!trinket.1.cooldown.ready)|!variable.trinket_sync_slot actions.cooldown+=/sinful_brand,if=!dot.sinful_brand.ticking&(!runeforge.agony_gaze|(cooldown.eye_beam.remains<=gcd&fury>=30))&(!cooldown.metamorphosis.up|active_enemies=1) actions.cooldown+=/the_hunt,if=!talent.demonic.enabled&!variable.waiting_for_momentum&!variable.pooling_for_meta|(buff.furious_gaze.up|!talent.furious_gaze) actions.cooldown+=/elysian_decree,if=(active_enemies>desired_targets|raid_event.adds.in>30) actions.cooldown+=/fleshcraft,if=soulbind.volatile_solvent&!buff.volatile_solvent_humanoid.up,interrupt_immediate=1,interrupt_global=1,interrupt_if=soulbind.volatile_solvent actions.demonic=eye_beam,if=runeforge.agony_gaze&(active_enemies>desired_targets|raid_event.adds.in>25-talent.cycle_of_hatred*10)&dot.sinful_brand.ticking&dot.sinful_brand.remains<=gcd actions.demonic+=/essence_break,if=!variable.waiting_for_momentum&(!cooldown.eye_beam.ready|buff.metamorphosis.up) actions.demonic+=/death_sweep,if=variable.blade_dance actions.demonic+=/fel_barrage,if=active_enemies>desired_targets|raid_event.adds.in>30 actions.demonic+=/glaive_tempest,if=active_enemies>desired_targets|raid_event.adds.in>10 actions.demonic+=/throw_glaive,if=(conduit.serrated_glaive|talent.serrated_glaive)&cooldown.eye_beam.remains<6&!buff.metamorphosis.up&!debuff.exposed_wound.up actions.demonic+=/eye_beam,if=active_enemies>desired_targets|raid_event.adds.in>25-talent.cycle_of_hatred*10&(!variable.use_eye_beam_fury_condition|spell_targets>1|fury<70)&!variable.waiting_for_agony_gaze actions.demonic+=/blade_dance,if=variable.blade_dance&!cooldown.metamorphosis.ready&(cooldown.eye_beam.remains>5|(raid_event.adds.in>cooldown&raid_event.adds.in<25)) actions.demonic+=/throw_glaive,if=talent.soulrend&spell_targets>(2-talent.furious_throws) actions.demonic+=/annihilation,if=!variable.pooling_for_blade_dance actions.demonic+=/immolation_aura,if=!buff.immolation_aura.up&(!talent.ragefire|active_enemies>desired_targets|raid_event.adds.in>15) actions.demonic+=/felblade,if=fury.deficit>=40 actions.demonic+=/sigil_of_flame,if=active_enemies>desired_targets actions.demonic+=/chaos_strike,if=!variable.pooling_for_blade_dance&!variable.pooling_for_eye_beam actions.demonic+=/fel_rush,if=!talent.momentum&talent.demon_blades&!cooldown.eye_beam.ready&(charges=2|(raid_event.movement.in>10&raid_event.adds.in>10)) actions.demonic+=/demons_bite,cycle_targets=1,if=(runeforge.burning_wound|talent.burning_wound)&debuff.burning_wound.remains<4 actions.demonic+=/fel_rush,if=!talent.momentum&!talent.demon_blades&spell_targets>1&(charges=2|(raid_event.movement.in>10&raid_event.adds.in>10)) actions.demonic+=/sigil_of_flame,if=raid_event.adds.in>15&fury.deficit>=30 actions.demonic+=/demons_bite actions.demonic+=/throw_glaive,if=buff.out_of_range.up actions.demonic+=/fel_rush,if=movement.distance>15|(buff.out_of_range.up&!talent.momentum) actions.demonic+=/vengeful_retreat,if=!talent.momentum&movement.distance>15 actions.demonic+=/throw_glaive,if=talent.demon_blades actions.normal=eye_beam,if=runeforge.agony_gaze&(active_enemies>desired_targets|raid_event.adds.in>15)&dot.sinful_brand.ticking&dot.sinful_brand.remains<=gcd actions.normal+=/essence_break actions.normal+=/death_sweep,if=variable.blade_dance actions.normal+=/fel_barrage,if=active_enemies>desired_targets|raid_event.adds.in>30 actions.normal+=/immolation_aura,if=!buff.immolation_aura.up&(!talent.ragefire|active_enemies>desired_targets|raid_event.adds.in>15) actions.normal+=/glaive_tempest,if=!variable.waiting_for_momentum&(active_enemies>desired_targets|raid_event.adds.in>10) actions.normal+=/throw_glaive,if=(conduit.serrated_glaive|talent.serrated_glaive)&cooldown.eye_beam.remains<6&!buff.metamorphosis.up&!debuff.exposed_wound.up actions.normal+=/eye_beam,if=!variable.waiting_for_momentum&(active_enemies>desired_targets|raid_event.adds.in>15&(!variable.use_eye_beam_fury_condition|spell_targets>1|fury<70)&!variable.waiting_for_agony_gaze) actions.normal+=/blade_dance,if=variable.blade_dance actions.normal+=/throw_glaive,if=talent.soulrend&spell_targets>(2-talent.furious_throws) actions.normal+=/felblade,if=fury.deficit>=40 actions.normal+=/sigil_of_flame,if=active_enemies>desired_targets actions.normal+=/annihilation,if=(talent.demon_blades|!variable.waiting_for_momentum|fury.deficit<30|buff.metamorphosis.remains<5)&!variable.pooling_for_blade_dance actions.normal+=/chaos_strike,if=(talent.demon_blades|!variable.waiting_for_momentum|fury.deficit<30)&!variable.pooling_for_meta&!variable.pooling_for_blade_dance actions.normal+=/eye_beam,if=talent.blind_fury.enabled&raid_event.adds.in>cooldown&!variable.waiting_for_agony_gaze actions.normal+=/demons_bite,cycle_targets=1,if=(runeforge.burning_wound|talent.burning_wound)&debuff.burning_wound.remains<4 actions.normal+=/sigil_of_flame,if=raid_event.adds.in>15&fury.deficit>=30 actions.normal+=/demons_bite actions.normal+=/fel_rush,if=!talent.momentum.enabled&raid_event.movement.in>charges*10&talent.demon_blades actions.normal+=/felblade,if=movement.distance>15|buff.out_of_range.up actions.normal+=/fel_rush,if=movement.distance>15|(buff.out_of_range.up&!talent.momentum) actions.normal+=/vengeful_retreat,if=!talent.momentum&movement.distance>15 actions.normal+=/throw_glaive,if=talent.demon_blades