demonhunter="Demon_Hunter_Havoc_T19H"
level=110
race=blood_elf
role=attack
position=back
talents=2220311
talent_override=fel_barrage,if=active_enemies>1|raid_event.adds.exists
talent_override=momentum,if=active_enemies>1|raid_event.adds.exists
artifact=3:0:0:0:0:1001:3:1002:3:1003:3:1004:2:1005:3:1006:3:1007:3:1010:1:1011:1:1012:1:1014:1:1015:1:1016:1:1330:1
spec=havoc

# This default action priority list is automatically created based on your character.
# It is a attempt to provide you with a action list that is both simple and practicable,
# while resulting in a meaningful and good simulation. It may not result in the absolutely highest possible dps.
# Feel free to edit, adapt and improve it to your own needs.
# SimulationCraft is always looking for updates and improvements to the default action lists.

# Executed before combat begins. Accepts non-harmful actions only.
actions.precombat=flask,type=flask_of_the_seventh_demon
actions.precombat+=/food,type=the_hungry_magister,if=!equipped.majordomos_dinner_bell
actions.precombat+=/food,type=nightborne_delicacy_platter,if=equipped.majordomos_dinner_bell
actions.precombat+=/augmentation,type=defiled
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=old_war
actions.precombat+=/metamorphosis,if=!(talent.demon_reborn.enabled&talent.demonic.enabled)

# Executed every time the actor is available.
actions=auto_attack
actions+=/variable,name=waiting_for_nemesis,value=!(!talent.nemesis.enabled|cooldown.nemesis.ready|cooldown.nemesis.remains>target.time_to_die|cooldown.nemesis.remains>60)
actions+=/variable,name=waiting_for_chaos_blades,value=!(!talent.chaos_blades.enabled|cooldown.chaos_blades.ready|cooldown.chaos_blades.remains>target.time_to_die|cooldown.chaos_blades.remains>60)
# "Getting ready to use meta" conditions, this is used in a few places.
actions+=/variable,name=pooling_for_meta,value=cooldown.metamorphosis.remains<6&fury.deficit>30&!talent.demonic.enabled&(!variable.waiting_for_nemesis|cooldown.nemesis.remains<10)&(!variable.waiting_for_chaos_blades|cooldown.chaos_blades.remains<6)
# Blade Dance conditions. Always if First Blood is talented or the T20 2pc set bonus, otherwise at 5+ targets with Chaos Cleave or 3+ targets without.
actions+=/variable,name=blade_dance,value=talent.first_blood.enabled|set_bonus.tier20_2pc|spell_targets.blade_dance1>=3+(talent.chaos_cleave.enabled*2)
# Blade Dance pooling condition, so we don't spend too much fury when we need it soon. No need to pool on
# single target since First Blood already makes it cheap enough and delaying it a tiny bit isn't a big deal.
actions+=/variable,name=pooling_for_blade_dance,value=variable.blade_dance&fury-40<35-talent.first_blood.enabled*20&(spell_targets.blade_dance1>=3+(talent.chaos_cleave.enabled*2))
# Chaos Strike pooling condition, so we don't spend too much fury when we need it for Chaos Cleave AoE
actions+=/variable,name=pooling_for_chaos_strike,value=talent.chaos_cleave.enabled&fury.deficit>40&!raid_event.adds.up&raid_event.adds.in<2*gcd
actions+=/call_action_list,name=cooldown,if=gcd.remains=0
actions+=/pick_up_fragment,if=talent.demonic_appetite.enabled&fury.deficit>=35&(!talent.demonic.enabled|cooldown.eye_beam.remains>5)
actions+=/consume_magic
# Vengeful Retreat backwards through the target to minimize downtime.
actions+=/vengeful_retreat,if=(talent.prepared.enabled|talent.momentum.enabled)&buff.prepared.down&buff.momentum.down
# Fel Rush for Momentum and for fury from Fel Mastery.
actions+=/fel_rush,if=(talent.momentum.enabled|talent.fel_mastery.enabled)&(!talent.momentum.enabled|(charges=2|cooldown.vengeful_retreat.remains>4)&buff.momentum.down)&(!talent.fel_mastery.enabled|fury.deficit>=25)&(charges=2|(raid_event.movement.in>10&raid_event.adds.in>10))
# Use Fel Barrage at max charges, saving it for Momentum and adds if possible.
actions+=/fel_barrage,if=charges>=5&(buff.momentum.up|!talent.momentum.enabled)&((active_enemies>desired_targets&active_enemies>1)|raid_event.adds.in>30)
actions+=/throw_glaive,if=talent.bloodlet.enabled&(!talent.momentum.enabled|buff.momentum.up)&charges=2
actions+=/felblade,if=fury<15&(cooldown.death_sweep.remains<2*gcd|cooldown.blade_dance.remains<2*gcd)
actions+=/death_sweep,if=variable.blade_dance
actions+=/fel_rush,if=charges=2&!talent.momentum.enabled&!talent.fel_mastery.enabled
actions+=/fel_eruption
actions+=/fury_of_the_illidari,if=(active_enemies>desired_targets&active_enemies>1)|raid_event.adds.in>55&(!talent.momentum.enabled|buff.momentum.up)&(!talent.chaos_blades.enabled|buff.chaos_blades.up|cooldown.chaos_blades.remains>30|target.time_to_die<cooldown.chaos_blades.remains)
actions+=/eye_beam,if=talent.demonic.enabled&(talent.demon_blades.enabled|(talent.blind_fury.enabled&fury.deficit>=35)|(!talent.blind_fury.enabled&fury.deficit<30))&((active_enemies>desired_targets&active_enemies>1)|raid_event.adds.in>30)
actions+=/blade_dance,if=variable.blade_dance&(!talent.demonic.enabled|cooldown.eye_beam.remains>5)&(!cooldown.metamorphosis.ready)
actions+=/throw_glaive,if=talent.bloodlet.enabled&spell_targets>=2&(!talent.master_of_the_glaive.enabled|!talent.momentum.enabled|buff.momentum.up)&(spell_targets>=3|raid_event.adds.in>recharge_time+cooldown)
actions+=/felblade,if=fury.deficit>=30+buff.prepared.up*8
actions+=/eye_beam,if=talent.blind_fury.enabled&(spell_targets.eye_beam_tick>desired_targets|fury.deficit>=35)
actions+=/annihilation,if=(talent.demon_blades.enabled|!talent.momentum.enabled|buff.momentum.up|fury.deficit<30+buff.prepared.up*8|buff.metamorphosis.remains<5)&!variable.pooling_for_blade_dance
actions+=/throw_glaive,if=talent.bloodlet.enabled&(!talent.master_of_the_glaive.enabled|!talent.momentum.enabled|buff.momentum.up)&raid_event.adds.in>recharge_time+cooldown
actions+=/eye_beam,if=!talent.demonic.enabled&!talent.blind_fury.enabled&((spell_targets.eye_beam_tick>desired_targets&active_enemies>1)|(!set_bonus.tier19_4pc&raid_event.adds.in>45&!variable.pooling_for_meta&buff.metamorphosis.down&(artifact.anguish_of_the_deceiver.enabled|active_enemies>1)&!talent.chaos_cleave.enabled))
# If Demonic is talented, pool fury as Eye Beam is coming off cooldown.
actions+=/demons_bite,if=talent.demonic.enabled&!talent.blind_fury.enabled&buff.metamorphosis.down&cooldown.eye_beam.remains<gcd&fury.deficit>=20
actions+=/demons_bite,if=talent.demonic.enabled&!talent.blind_fury.enabled&buff.metamorphosis.down&cooldown.eye_beam.remains<2*gcd&fury.deficit>=45
actions+=/throw_glaive,if=buff.metamorphosis.down&spell_targets>=2
actions+=/chaos_strike,if=(talent.demon_blades.enabled|!talent.momentum.enabled|buff.momentum.up|fury.deficit<30+buff.prepared.up*8)&!variable.pooling_for_chaos_strike&!variable.pooling_for_meta&!variable.pooling_for_blade_dance&(!talent.demonic.enabled|!cooldown.eye_beam.ready|(talent.blind_fury.enabled&fury.deficit<35))
# Use Fel Barrage if its nearing max charges, saving it for Momentum and adds if possible.
actions+=/fel_barrage,if=charges=4&buff.metamorphosis.down&(buff.momentum.up|!talent.momentum.enabled)&((active_enemies>desired_targets&active_enemies>1)|raid_event.adds.in>30)
actions+=/fel_rush,if=!talent.momentum.enabled&raid_event.movement.in>charges*10&(talent.demon_blades.enabled|buff.metamorphosis.down)
actions+=/demons_bite
actions+=/throw_glaive,if=buff.out_of_range.up
actions+=/felblade,if=movement.distance|buff.out_of_range.up
actions+=/fel_rush,if=movement.distance>15|(buff.out_of_range.up&!talent.momentum.enabled)
actions+=/vengeful_retreat,if=movement.distance>15
actions+=/throw_glaive,if=!talent.bloodlet.enabled

# Use Metamorphosis when we are done pooling Fury and when we are not waiting for other cooldowns to sync.
actions.cooldown=metamorphosis,if=!(variable.pooling_for_meta|variable.waiting_for_nemesis|variable.waiting_for_chaos_blades)|target.time_to_die<25
# If adds are present, use Nemesis on the lowest HP add in order to get the Nemesis buff for AoE
actions.cooldown+=/nemesis,target_if=min:target.time_to_die,if=raid_event.adds.exists&debuff.nemesis.down&((active_enemies>desired_targets&active_enemies>1)|raid_event.adds.in>60)
actions.cooldown+=/nemesis,if=!raid_event.adds.exists&(buff.chaos_blades.up|buff.metamorphosis.up|cooldown.metamorphosis.adjusted_remains<20|target.time_to_die<=60)
actions.cooldown+=/chaos_blades,if=buff.metamorphosis.up|cooldown.metamorphosis.adjusted_remains>60|target.time_to_die<=12
actions.cooldown+=/use_item,slot=trinket1,if=buff.chaos_blades.up|!talent.chaos_blades.enabled
actions.cooldown+=/potion,name=old_war,if=buff.metamorphosis.remains>25|target.time_to_die<30

head=mask_of_multitudinous_eyes,id=139204,bonus_id=1805
neck=understone_gorget,id=134491,bonus_id=3418/1517/1813,enchant=mark_of_the_hidden_satyr
shoulders=felbat_leather_pauldrons,id=134374,bonus_id=3418/1527/1813
back=cloak_of_manaspun_silk,id=134410,bonus_id=3418/1517/1813,enchant=binding_of_agility
chest=vest_of_rupturing_diamonds,id=137336,bonus_id=3418/1517/1813
wrists=felbat_leather_wristwraps,id=134368,bonus_id=3418/1527/1813
hands=guileful_intruder_handguards,id=137480,bonus_id=3418/1517/1813
waist=felbat_leather_cinch,id=134375,bonus_id=3418/1527/1813
legs=felbat_leather_leggings,id=134370,bonus_id=3418/1527/1813
feet=tunnel_trudger_footguards,id=137397,bonus_id=3418/1517/1813
finger1=band_of_callous_dominance,id=134528,bonus_id=3418/1517/1813,enchant=binding_of_critical_strike
finger2=utgarde_royal_signet,id=133637,bonus_id=3418/1517/1813,enchant=binding_of_critical_strike
trinket1=faulty_countermeasure,id=137539,bonus_id=3418/1517/1813
trinket2=bloodthirsty_instinct,id=139329,bonus_id=1805/1487
main_hand=twinblades_of_the_deceiver,id=127829,bonus_id=719,gem_id=139251/138226/139251,relic_id=1805/1805/1805
off_hand=twinblades_of_the_deceiver,id=127830,gem_id=0/0/0/0,relic_id=0/0

# Gear Summary
# gear_ilvl=868.63
# gear_agility=14601
# gear_stamina=23338
# gear_crit_rating=13987
# gear_haste_rating=1321
# gear_mastery_rating=674
# gear_versatility_rating=4269
# gear_armor=2126
# set_bonus=tier19p_leather_2pc=1
