hunter="Hunter_MM_T19H"
level=110
race=troll
role=attack
position=ranged_back
talents=1303013
artifact=55:0:0:0:0:307:1:308:1:310:1:311:1:312:3:313:3:314:2:315:3:318:3:319:3:320:3:321:1:322:1:1337:1
spec=marksmanship

# 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=nightborne_delicacy_platter
actions.precombat+=/summon_pet
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion,name=prolonged_power,if=spell_targets.multi_shot>2
actions.precombat+=/potion,name=deadly_grace
actions.precombat+=/augmentation,type=defiled
actions.precombat+=/windburst

# Executed every time the actor is available.
actions=auto_shot
actions+=/arcane_torrent,if=focus.deficit>=30&(!talent.sidewinders.enabled|cooldown.sidewinders.charges<2)
actions+=/berserking,if=buff.trueshot.up
actions+=/blood_fury,if=buff.trueshot.up
actions+=/volley,toggle=on
actions+=/variable,name=safe_to_build,value=debuff.hunters_mark.down|(buff.trueshot.down&buff.marking_targets.down)
actions+=/variable,name=use_multishot,value=((buff.marking_targets.up|buff.trueshot.up)&spell_targets.multi_shot>1)|(buff.marking_targets.down&buff.trueshot.down&spell_targets.multi_shot>2)
actions+=/variable,name=pooling_for_piercing,value=talent.piercing_shot.enabled&cooldown.piercing_shot.remains<5&focus<100&!buff.lock_and_load.up
actions+=/variable,name=sentinel_soon,value=talent.sentinel.enabled&!cooldown.sentinel.up&((cooldown.sentinel.remains>50&cooldown.sentinel.remains<(50+gcd.max))|(cooldown.sentinel.remains>40&cooldown.sentinel.remains<(40+gcd.max)))
actions+=/a_murder_of_crows,if=time=0
actions+=/call_action_list,name=cooldowns
actions+=/call_action_list,name=targetdie,if=target.time_to_die<6&spell_targets.multi_shot=1
actions+=/call_action_list,name=patient_sniper,if=talent.patient_sniper.enabled
actions+=/call_action_list,name=non_patient_sniper,if=!talent.patient_sniper.enabled

actions.cooldowns=potion,name=prolonged_power,if=spell_targets.multi_shot>2&((buff.trueshot.react&buff.bloodlust.react)|buff.bullseye.react>=23|target.time_to_die<62)
actions.cooldowns+=/potion,name=deadly_grace,if=(buff.trueshot.react&buff.bloodlust.react)|buff.bullseye.react>=23|target.time_to_die<31
actions.cooldowns+=/variable,name=trueshot_cooldown,op=set,value=time*1.1,if=time>15&cooldown.trueshot.up&variable.trueshot_cooldown=0
actions.cooldowns+=/trueshot,if=time<=15|buff.bloodlust.react|(variable.trueshot_cooldown>0&target.time_to_die>(variable.trueshot_cooldown+duration))|buff.bullseye.react>25|target.time_to_die<16

actions.non_patient_sniper=windburst,if=debuff.vulnerability.remains<(2*attack_haste)
actions.non_patient_sniper+=/piercing_shot,if=debuff.vulnerability.up&focus>90
actions.non_patient_sniper+=/black_arrow,if=debuff.vulnerability.remains<(2*attack_haste)
actions.non_patient_sniper+=/explosive_shot,if=debuff.vulnerability.remains<(2*attack_haste)|spell_targets.explosive_shot>1
actions.non_patient_sniper+=/a_murder_of_crows,if=debuff.vulnerability.remains<(2*attack_haste)
actions.non_patient_sniper+=/barrage,if=spell_targets>1|(target.health.pct<20&buff.bullseye.stack<25)
actions.non_patient_sniper+=/sentinel,if=debuff.hunters_mark.down
actions.non_patient_sniper+=/sidewinders,if=variable.safe_to_build&focus.deficit>60&(((buff.marking_targets.up|buff.trueshot.up)&charges_fractional>1.2)|charges_fractional>1.8)&!variable.sentinel_soon
actions.non_patient_sniper+=/marked_shot,if=cooldown.sentinel.remains>40|spell_targets.multi_shot>1
actions.non_patient_sniper+=/marked_shot,if=talent.sidewinders.enabled&((debuff.vulnerability.remains<1&cooldown.sidewinders.charges_fractional<1.5&focus.deficit<80)|(cooldown.sidewinders.charges_fractional>1.7))
actions.non_patient_sniper+=/marked_shot,if=!talent.sidewinders.enabled&debuff.vulnerability.remains<(2*attack_haste)
actions.non_patient_sniper+=/aimed_shot,if=(debuff.vulnerability.remains>execute_time|(focus>80&cooldown.windburst.remains>3))&!variable.pooling_for_piercing
actions.non_patient_sniper+=/arcane_shot,if=spell_targets.multi_shot<2
actions.non_patient_sniper+=/multishot,if=spell_targets.multi_shot>1

actions.patient_sniper=variable,name=vuln_aim_casts,op=set,value=floor(debuff.vulnerability.remains%(2*attack_haste))
actions.patient_sniper+=/variable,name=vuln_aim_casts,op=set,value=floor((focus.regen*(debuff.vulnerability.remains-(2*attack_haste))+focus)%50),if=variable.vuln_aim_casts>floor((focus.regen*(debuff.vulnerability.remains-(2*attack_haste))+focus)%50)
actions.patient_sniper+=/variable,name=focus_after_vuln,op=set,value=(focus.regen*debuff.vulnerability.remains)-(variable.vuln_aim_casts*50)
actions.patient_sniper+=/sidewinders,if=buff.trueshot.up&(debuff.vulnerability.remains<(2*attack_haste)|focus<35)&(spell_targets.sidewinders<2|debuff.hunters_mark.down)
actions.patient_sniper+=/sidewinders,if=buff.trueshot.down&debuff.vulnerability.remains<(2*attack_haste)&focus<60&(debuff.hunters_mark.down|(charges_fractional>1.3&spell_targets.sidewinders<2))
actions.patient_sniper+=/windburst,if=debuff.vulnerability.remains<(2*attack_haste)&(talent.sidewinders.enabled|focus>60)&!variable.pooling_for_piercing
actions.patient_sniper+=/black_arrow
actions.patient_sniper+=/a_murder_of_crows,if=(target.time_to_die>=cooldown+duration|target.health.pct<20|target.time_to_die<16)&(debuff.vulnerability.remains<1|debuff.vulnerability.remains>(4*attack_haste+gcd))
actions.patient_sniper+=/barrage,if=spell_targets>1|(target.health.pct<20&buff.bullseye.stack<25)
actions.patient_sniper+=/piercing_shot,if=debuff.vulnerability.up&debuff.vulnerability.remains<4&focus>80
actions.patient_sniper+=/marked_shot,if=!talent.sidewinders.enabled&spell_targets.multi_shot>1&(!variable.pooling_for_piercing|debuff.vulnerability.up)
actions.patient_sniper+=/marked_shot,if=talent.sidewinders.enabled&((debuff.vulnerability.remains<(2*attack_haste)&focus>50)|spell_targets.sidewinders>1)
actions.patient_sniper+=/marked_shot,if=!talent.sidewinders.enabled&spell_targets.multi_shot<2&debuff.vulnerability.remains<(2*attack_haste)&(debuff.hunters_mark.remains<gcd|focus>90)
actions.patient_sniper+=/aimed_shot,if=debuff.vulnerability.remains>execute_time&(buff.trueshot.up|buff.lock_and_load.up)&(spell_targets.multi_shot<2|talent.sidewinders.enabled)&!variable.pooling_for_piercing
actions.patient_sniper+=/aimed_shot,if=talent.sidewinders.enabled&variable.focus_after_vuln>60&!debuff.hunters_mark.up
actions.patient_sniper+=/aimed_shot,if=debuff.vulnerability.remains>execute_time&debuff.vulnerability.remains-execute_time<1&!variable.pooling_for_piercing
actions.patient_sniper+=/aimed_shot,if=debuff.vulnerability.remains>(execute_time*2)&(debuff.vulnerability.remains-(execute_time*2))<1&(focus+focus.regen*(debuff.vulnerability.remains-execute_time))>100&!variable.pooling_for_piercing
actions.patient_sniper+=/aimed_shot,if=cast_regen+focus>focus.max&(debuff.vulnerability.remains>execute_time|cooldown.windburst.remains>3)&!variable.pooling_for_piercing
actions.patient_sniper+=/arcane_shot,if=buff.trueshot.up&spell_targets.multi_shot<2
actions.patient_sniper+=/multishot,if=buff.trueshot.up&spell_targets.multi_shot>1
actions.patient_sniper+=/arcane_shot,if=spell_targets.multi_shot<2&(debuff.vulnerability.remains<(2*attack_haste)|(debuff.vulnerability.remains>(variable.vuln_aim_casts*2*attack_haste+gcd)&(debuff.vulnerability.remains-(variable.vuln_aim_casts*2*attack_haste+gcd))<1))
actions.patient_sniper+=/multishot,if=spell_targets.multi_shot>1&(debuff.vulnerability.remains<(2*attack_haste)|(debuff.vulnerability.remains>(variable.vuln_aim_casts*2*attack_haste+gcd)&(debuff.vulnerability.remains-(variable.vuln_aim_casts*2*attack_haste+gcd))<1))

actions.targetdie=windburst
actions.targetdie+=/aimed_shot,if=debuff.vulnerability.remains>execute_time&target.time_to_die>execute_time
actions.targetdie+=/sidewinders
actions.targetdie+=/marked_shot
actions.targetdie+=/aimed_shot
actions.targetdie+=/arcane_shot

head=collar_of_honorable_exultation,id=136777,bonus_id=1517/3418
neck=intrepid_necklace_of_prophecy,id=130240,bonus_id=669/1769,gems=200agility,enchant=mark_of_the_hidden_satyr
shoulders=epaulets_of_deceitful_intent,id=134480,bonus_id=1517/3418
back=drape_of_the_raven_lord,id=136770,bonus_id=1517/3418,enchant=binding_of_agility
chest=thunderfused_valkyr_hauberk,id=133622,bonus_id=1517/3418
wrists=remorseless_chain_armbands,id=137405,bonus_id=1517/3418
hands=lavabreaker_gauntlets,id=137519,bonus_id=1517/3418
waist=creeping_string_of_larva,id=139212,bonus_id=1487/1805
legs=singular_chain_leggings,id=139215,bonus_id=1487/1805
feet=whelp_handlers_lined_boots,id=134464,bonus_id=1517/3418
finger1=archdruids_tainted_seal,id=134487,bonus_id=1517/3418,enchant=binding_of_mastery
finger2=shadowruby_band,id=136713,bonus_id=669/1703,gems=150mastery,enchant=binding_of_mastery
trinket1=naraxas_spiked_tongue,id=137349,bonus_id=1517/3418
trinket2=bloodthirsty_instinct,id=139329,bonus_id=1487/1805
main_hand=thasdorah_legacy_of_the_windrunners,id=128826,ilevel=894,gem_id=137313/136718/137381

# Gear Summary
# gear_ilvl=864.93
# gear_agility=15095
# gear_stamina=23428
# gear_crit_rating=1504
# gear_haste_rating=4946
# gear_mastery_rating=13705
# gear_armor=2630
# set_bonus=tier19p_mail_2pc=1
summon_pet=cat
