druid="Druid_Feral_T19M_NH"
spec=feral
level=110
race=night_elf
timeofday=day
role=attack
position=back
talents=2331322
artifact=58:0:0:0:0:1153:1:1154:1:1155:1:1156:1:1157:1:1158:1:1159:1:1160:4:1161:4:1162:4:1163:4:1164:4:1165:4:1166:4:1167:4:1168:4:1327:1:1365:1:1505:4:1506:1:1507:1:1508:1:1633:1

# Default consumables
potion=old_war
flask=seventh_demon
food=lavish_suramar_feast
augmentation=defiled

# 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
actions.precombat+=/food
actions.precombat+=/augmentation
actions.precombat+=/regrowth,if=talent.bloodtalons.enabled
# Rake_refresh controls how aggresively to refresh rake. Lower means less aggresively.
actions.precombat+=/variable,name=rake_refresh,op=set,value=7
actions.precombat+=/variable,name=rake_refresh,op=set,value=3,if=equipped.ailuro_pouncers
# Pooling controlls how aggresively to pool. Lower means more aggresively
actions.precombat+=/variable,name=pooling,op=set,value=3
actions.precombat+=/variable,name=pooling,op=set,value=10,if=equipped.chatoyant_signet
actions.precombat+=/variable,name=pooling,op=set,value=3,if=equipped.the_wildshapers_clutch&!equipped.chatoyant_signet
actions.precombat+=/cat_form
actions.precombat+=/prowl
# Snapshot raid buffed stats before combat begins and pre-potting is done.
actions.precombat+=/snapshot_stats
actions.precombat+=/potion

# Executed every time the actor is available.
actions=dash,if=!buff.cat_form.up
actions+=/cat_form
actions+=/call_action_list,name=opener,if=!dot.rip.ticking&time<15&talent.savage_roar.enabled&talent.jagged_wounds.enabled&talent.bloodtalons.enabled&desired_targets<=1
actions+=/wild_charge
actions+=/displacer_beast,if=movement.distance>10
actions+=/dash,if=movement.distance&buff.displacer_beast.down&buff.wild_charge_movement.down
actions+=/rake,if=buff.prowl.up|buff.shadowmeld.up
actions+=/auto_attack
actions+=/skull_bash
actions+=/berserk,if=buff.tigers_fury.up
actions+=/incarnation,if=cooldown.tigers_fury.remains<gcd
actions+=/use_items
actions+=/potion,name=old_war,if=((buff.berserk.remains>10|buff.incarnation.remains>20)&(target.time_to_die<180|(trinket.proc.all.react&target.health.pct<25)))|target.time_to_die<=40
actions+=/tigers_fury,if=(!buff.clearcasting.react&energy.deficit>=60)|energy.deficit>=80|(t18_class_trinket&buff.berserk.up&buff.tigers_fury.down)
actions+=/incarnation,if=energy.time_to_max>1&energy>=35
# Keep Rip from falling off during execute range.
actions+=/ferocious_bite,cycle_targets=1,if=dot.rip.ticking&dot.rip.remains<3&target.time_to_die>3&(target.health.pct<25|talent.sabertooth.enabled)
# Use Healing Touch at 5 Combo Points, if Predatory Swiftness is about to fall off, at 2 Combo Points before Ashamane's Frenzy, before Elune's Guidance is cast or before the Elune's Guidance buff gives you a 5th Combo Point.
actions+=/regrowth,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&buff.bloodtalons.down&(combo_points>=5|buff.predatory_swiftness.remains<1.5|(talent.bloodtalons.enabled&combo_points=2&cooldown.ashamanes_frenzy.remains<gcd)|(talent.elunes_guidance.enabled&((cooldown.elunes_guidance.remains<gcd&combo_points=0)|(buff.elunes_guidance.up&combo_points>=4))))
actions+=/regrowth,if=talent.bloodtalons.enabled&buff.predatory_swiftness.up&buff.bloodtalons.down&combo_points=4&dot.rake.remains<4
actions+=/call_action_list,name=sbt_opener,if=talent.sabertooth.enabled&time<20
# Special logic for Ailuro Pouncers legendary.
actions+=/regrowth,if=equipped.ailuro_pouncers&talent.bloodtalons.enabled&(buff.predatory_swiftness.stack>2|(buff.predatory_swiftness.stack>1&dot.rake.remains<3))&buff.bloodtalons.down
actions+=/call_action_list,name=finisher
actions+=/call_action_list,name=generator
# The Following line massively increases performance of the simulation but can be safely removed.
actions+=/wait,sec=1,if=energy.time_to_max>3

# Use Savage Roar if it's expired and you're at 5 combo points or are about to use Brutal Slash
actions.finisher=pool_resource,for_next=1
actions.finisher+=/savage_roar,if=!buff.savage_roar.up&(combo_points=5|(talent.brutal_slash.enabled&spell_targets.brutal_slash>desired_targets&action.brutal_slash.charges>0))
# Thrash has higher priority than finishers at 5 targets
actions.finisher+=/pool_resource,for_next=1
actions.finisher+=/thrash_cat,cycle_targets=1,if=remains<=duration*0.3&spell_targets.thrash_cat>=5
# Replace Rip with Swipe at 8 targets
actions.finisher+=/pool_resource,for_next=1
actions.finisher+=/swipe_cat,if=spell_targets.swipe_cat>=8
# Refresh Rip at 8 seconds or for a stronger Rip
actions.finisher+=/rip,cycle_targets=1,if=(!ticking|(remains<8&target.health.pct>25&!talent.sabertooth.enabled)|persistent_multiplier>dot.rip.pmultiplier)&target.time_to_die-remains>tick_time*4&combo_points=5&(energy.time_to_max<variable.pooling|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3|set_bonus.tier18_4pc|(buff.clearcasting.react&energy>65)|talent.soul_of_the_forest.enabled|!dot.rip.ticking|(dot.rake.remains<1.5&spell_targets.swipe_cat<6))
# Refresh Savage Roar early with Jagged Wounds
actions.finisher+=/savage_roar,if=((buff.savage_roar.remains<=10.5&talent.jagged_wounds.enabled)|(buff.savage_roar.remains<=7.2))&combo_points=5&(energy.time_to_max<variable.pooling|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3|set_bonus.tier18_4pc|(buff.clearcasting.react&energy>65)|talent.soul_of_the_forest.enabled|!dot.rip.ticking|(dot.rake.remains<1.5&spell_targets.swipe_cat<6))
# Replace FB with Swipe at 6 targets for Bloodtalons or 3 targets otherwise.
actions.finisher+=/swipe_cat,if=combo_points=5&(spell_targets.swipe_cat>=6|(spell_targets.swipe_cat>=3&!talent.bloodtalons.enabled))&combo_points=5&(energy.time_to_max<variable.pooling|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3|set_bonus.tier18_4pc|(talent.moment_of_clarity.enabled&buff.clearcasting.react))
actions.finisher+=/maim,,if=combo_points=5&buff.fiery_red_maimers.up&(energy.time_to_max<variable.pooling|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3)
actions.finisher+=/ferocious_bite,max_energy=1,cycle_targets=1,if=combo_points=5&(energy.time_to_max<variable.pooling|buff.berserk.up|buff.incarnation.up|buff.elunes_guidance.up|cooldown.tigers_fury.remains<3)

# Brutal Slash if there's adds up
actions.generator=brutal_slash,if=spell_targets.brutal_slash>desired_targets&combo_points<5
actions.generator+=/ashamanes_frenzy,if=combo_points<=2&buff.elunes_guidance.down&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(buff.savage_roar.up|!talent.savage_roar.enabled)
# Pool energy for Elune's Guidance when it's coming off cooldown.
actions.generator+=/pool_resource,if=talent.elunes_guidance.enabled&combo_points=0&energy<action.ferocious_bite.cost+25-energy.regen*cooldown.elunes_guidance.remains
actions.generator+=/elunes_guidance,if=talent.elunes_guidance.enabled&combo_points=0&energy>=action.ferocious_bite.cost+25
# Spam Thrash over Rake or Moonfire at 9 targets with Brutal Slash talent.
actions.generator+=/pool_resource,for_next=1
actions.generator+=/thrash_cat,if=talent.brutal_slash.enabled&spell_targets.thrash_cat>=9
# Use Swipe over Rake or Moonfire at 6 targets.
actions.generator+=/pool_resource,for_next=1
actions.generator+=/swipe_cat,if=spell_targets.swipe_cat>=6
# Shadowmeld to buff Rake
actions.generator+=/shadowmeld,if=combo_points<5&energy>=action.rake.cost&dot.rake.pmultiplier<2.1&buff.tigers_fury.up&(buff.bloodtalons.up|!talent.bloodtalons.enabled)&(!talent.incarnation.enabled|cooldown.incarnation.remains>18)&!buff.incarnation.up
# Refresh Rake early with Bloodtalons
actions.generator+=/pool_resource,for_next=1
actions.generator+=/rake,cycle_targets=1,if=combo_points<5&(!ticking|(!talent.bloodtalons.enabled&remains<duration*0.3)|(talent.bloodtalons.enabled&buff.bloodtalons.up&(remains<=variable.rake_refresh)&persistent_multiplier>dot.rake.pmultiplier*0.80))&target.time_to_die-remains>tick_time
actions.generator+=/moonfire_cat,cycle_targets=1,if=combo_points<5&remains<=4.2&target.time_to_die-remains>tick_time*2
actions.generator+=/pool_resource,for_next=1
# Use Thrash on single-target if you have T19 4set
actions.generator+=/thrash_cat,cycle_targets=1,if=set_bonus.tier19_4pc&remains<=duration*0.3&combo_points<5&(spell_targets.swipe_cat>=2|((equipped.luffa_wrappings|buff.clearcasting.up)&(equipped.ailuro_pouncers|buff.bloodtalons.down)))
actions.generator+=/thrash_cat,cycle_targets=1,if=!set_bonus.tier19_4pc&remains<=duration*0.3&(spell_targets.swipe_cat>=2|(buff.clearcasting.up&equipped.luffa_wrappings&(equipped.ailuro_pouncers|buff.bloodtalons.down)))
# Brutal Slash if you would cap out charges before the next adds spawn
actions.generator+=/brutal_slash,if=combo_points<5&((raid_event.adds.exists&raid_event.adds.in>(1+max_charges-charges_fractional)*15)|(!raid_event.adds.exists&(charges_fractional>2.66&time>10)))
actions.generator+=/swipe_cat,if=combo_points<5&spell_targets.swipe_cat>=3
actions.generator+=/shred,if=combo_points<5&(spell_targets.swipe_cat<3|talent.brutal_slash.enabled)

actions.opener=rake,if=buff.prowl.up
actions.opener+=/savage_roar,if=buff.savage_roar.down
actions.opener+=/berserk,if=buff.savage_roar.up&!equipped.draught_of_souls
actions.opener+=/tigers_fury,if=buff.berserk.up&!equipped.draught_of_souls
actions.opener+=/frenzy,if=buff.bloodtalons.up&!equipped.draught_of_souls
actions.opener+=/regrowth,if=combo_points=5&buff.bloodtalons.down&buff.predatory_swiftness.up&!equipped.draught_of_souls
actions.opener+=/rip,if=combo_points=5&buff.bloodtalons.up&!equipped.draught_of_souls
actions.opener+=/thrash_cat,if=combo_points<5&!ticking&!equipped.draught_of_souls
actions.opener+=/shred,if=combo_points<5&buff.savage_roar.up&!equipped.draught_of_souls

# Hard-cast a Healing Touch for Bloodtalons buff. Use Dash to re-enter Cat Form.
actions.sbt_opener=regrowth,if=talent.bloodtalons.enabled&combo_points=5&!buff.bloodtalons.up&!dot.rip.ticking
# Force use of Tiger's Fury before applying Rip.
actions.sbt_opener+=/tigers_fury,if=!dot.rip.ticking&combo_points=5

head=hood_of_the_astral_warden,id=138330,bonus_id=3518
neck=talisman_of_the_shaldorei,id=141326,bonus_id=3518,enchant=mark_of_the_hidden_satyr
shoulders=mantle_of_the_torn_sky,id=140864,bonus_id=3518
back=dreadlords_tattered_wingcover,id=140855,bonus_id=3518,enchant=binding_of_agility
chest=robe_of_the_astral_warden,id=138324,bonus_id=3518
wrists=bracers_of_impossible_choices,id=140889,bonus_id=3518
hands=gloves_of_the_astral_warden,id=138327,bonus_id=3518
waist=waistclasp_of_unethical_power,id=144405,bonus_id=3518
legs=leggings_of_the_astral_warden,id=138333,bonus_id=3518
feet=grovetenders_moccasins,id=140861,bonus_id=3518
finger1=spellblades_gemmed_signet,id=140895,bonus_id=3518,enchant=binding_of_versatility
finger2=ring_of_exclusive_servitude,id=140906,bonus_id=3518,enchant=binding_of_versatility
trinket1=nightblooming_frond,id=140802,ilevel=905
trinket2=entwined_elemental_foci,id=140796,ilevel=905
main_hand=fangs_of_ashamane,id=128860,bonus_id=723,ilevel=929,gem_id=140833/140820/140839/0
off_hand=fangs_of_ashamane,id=128859,gem_id=0/0/0/0,relic_id=0/0

# Gear Summary
# gear_ilvl=908.00
# gear_agility=23157
# gear_stamina=33708
# gear_crit_rating=9632
# gear_haste_rating=2138
# gear_mastery_rating=6638
# gear_versatility_rating=4627
# gear_armor=2430
# set_bonus=tier19_2pc=1
# set_bonus=tier19_4pc=1
