You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
180 lines
24 KiB
180 lines
24 KiB
## https://github.com/simulationcraft/simc/blob/thewarwithin/ActionPriorityLists/default/evoker_devastation.simc
|
|
## Up to date with SimC: March 28 2025 - 74b5dd8
|
|
|
|
actions.precombat+=/variable,name=trinket_1_buffs,value=trinket.1.has_buff.intellect|trinket.1.has_buff.mastery|trinket.1.has_buff.versatility|trinket.1.has_buff.haste|trinket.1.has_buff.crit|trinket.1.is.mirror_of_fractured_tomorrows|trinket.1.is.signet_of_the_priory
|
|
actions.precombat+=/variable,name=trinket_2_buffs,value=trinket.2.has_buff.intellect|trinket.2.has_buff.mastery|trinket.2.has_buff.versatility|trinket.2.has_buff.haste|trinket.2.has_buff.crit|trinket.2.is.mirror_of_fractured_tomorrows|trinket.2.is.signet_of_the_priory
|
|
actions.precombat+=/variable,name=weapon_buffs,value=equipped.bestinslots
|
|
actions.precombat+=/variable,name=weapon_sync,op=setif,value=1,value_else=0.5,condition=equipped.bestinslots
|
|
# Mythic one hardcoded - To Do implement something in simc to just get the value.
|
|
actions.precombat+=/variable,name=weapon_stat_value,value=equipped.bestinslots*5142*15
|
|
# Decide which trinket to pair with Dragonrage, prefer 2 minute and 1 minute trinkets
|
|
actions.precombat+=/variable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%cooldown.dragonrage.duration=0|cooldown.dragonrage.duration%%trinket.1.cooldown.duration=0|trinket.1.is.house_of_cards)
|
|
actions.precombat+=/variable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%cooldown.dragonrage.duration=0|cooldown.dragonrage.duration%%trinket.2.cooldown.duration=0|trinket.2.is.house_of_cards)
|
|
# Estimates a trinkets value by comparing the cooldown of the trinket, divided by the duration of the buff it provides. Has a intellect modifier (currently 1.5x) to give a higher priority to intellect trinkets. The intellect modifier should be changed as intellect priority increases or decreases. As well as a modifier for if a trinket will or will not sync with cooldowns.
|
|
actions.precombat+=/variable,name=trinket_1_manual,value=trinket.1.is.belorrelos_the_suncaller|trinket.1.is.nymues_unraveling_spindle|trinket.1.is.spymasters_web
|
|
actions.precombat+=/variable,name=trinket_2_manual,value=trinket.2.is.belorrelos_the_suncaller|trinket.2.is.nymues_unraveling_spindle|trinket.2.is.spymasters_web
|
|
actions.precombat+=/variable,name=trinket_1_ogcd_cast,value=0
|
|
actions.precombat+=/variable,name=trinket_2_ogcd_cast,value=0
|
|
actions.precombat+=/variable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell|trinket.1.is.whispering_incarnate_icon
|
|
actions.precombat+=/variable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell|trinket.2.is.whispering_incarnate_icon
|
|
actions.precombat+=/variable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs|variable.trinket_2_buffs&((trinket.2.proc.any_dps.duration)*(variable.trinket_2_sync)*trinket.2.proc.any_dps.default_value)>((trinket.1.proc.any_dps.duration)*(variable.trinket_1_sync)*trinket.1.proc.any_dps.default_value)
|
|
actions.precombat+=/variable,name=trinket_priority,op=setif,if=variable.weapon_buffs,value=3,value_else=variable.trinket_priority,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs|variable.weapon_stat_value*variable.weapon_sync>(((trinket.2.proc.any_dps.duration)*(variable.trinket_2_sync)*trinket.2.proc.any_dps.default_value)<?((trinket.1.proc.any_dps.duration)*(variable.trinket_1_sync)*trinket.1.proc.any_dps.default_value))
|
|
actions.precombat+=/variable,name=trinket_priority,op=set,value=trinket.1.is.signet_of_the_priory+2*trinket.2.is.signet_of_the_priory,if=equipped.signet_of_the_priory&variable.trinket_priority=3
|
|
actions.precombat+=/variable,name=damage_trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&!variable.trinket_2_buffs&trinket.2.ilvl>=trinket.1.ilvl
|
|
# Rank 1 empower spell cast time
|
|
actions.precombat+=/variable,name=r1_cast_time,value=1.0*spell_haste
|
|
# Variable for when to start holding empowers for upcoming DR in AoE. - From my testing 4sec seems like the sweetspot, but it's very minor diff so far - Holding for more than 6 seconds it begins to become a loss.
|
|
actions.precombat+=/variable,name=dr_prep_time,default=6,op=reset
|
|
actions.precombat+=/variable,name=dr_prep_time_aoe,default=4,op=reset
|
|
actions.precombat+=/variable,name=can_extend_dr,default=0,op=reset
|
|
## actions.precombat+=/variable,name=has_external_pi,value=cooldown.invoke_power_infusion_0.duration>0
|
|
actions.precombat+=/variable,name=can_use_empower,value=1,default=1,if=!talent.animosity|!talent.dragonrage|buff.empowering.up
|
|
# Get Some Scarlet Adaptation Prepull
|
|
actions.precombat+=/verdant_embrace,if=talent.scarlet_adaptation
|
|
## [Syrif] - This charge gets refunded pretty early by deep breath when talented into slipstream, but added some extra conditions to stop it from griefing in dungeons
|
|
actions.precombat+=/hover,if=talent.slipstream&buff.hover.down&cooldown.deep_breath.up
|
|
actions.precombat+=/firestorm,if=talent.firestorm&(!talent.engulf|!talent.ruby_embers)
|
|
actions.precombat+=/living_flame,if=!talent.firestorm|talent.engulf&talent.ruby_embers
|
|
|
|
# Variable that evaluates when next dragonrage is by working out the maximum between the dragonrage cd and your empowers, ignoring CDR effect estimates.
|
|
actions+=/variable,name=next_dragonrage,value=cooldown.dragonrage.remains<?((cooldown.eternity_surge.remains-8)>?(cooldown.fire_breath.remains-8))
|
|
## Invoke External Power Infusions if they're available during dragonrage
|
|
## actions+=/invoke_external_buff,name=power_infusion,if=buff.dragonrage.up&!cooldown.fire_breath.up&!cooldown.shattering_star.up
|
|
actions+=/variable,name=pool_for_id,if=talent.imminent_destruction,default=0,op=set,value=cooldown.deep_breath.remains<7&essence.deficit>=1&!buff.essence_burst.up&(raid_event.adds.in>=action.deep_breath.cooldown*0.4|talent.melt_armor&talent.maneuverability|active_enemies>=3)
|
|
# [Edited by Syrif] - animosity_extension returns the number of extensions performed for this dragonrage, use it instead of the complex APL conditions
|
|
actions+=/variable,name=can_extend_dr,if=talent.animosity,op=set,value=buff.dragonrage.up&(animosity_extension<4)
|
|
actions+=/variable,name=can_use_empower,op=set,value=cooldown.dragonrage.remains>=gcd.max*variable.dr_prep_time,if=!buff.empowering.up&talent.animosity&talent.dragonrage
|
|
# Rupt to make the raidleader happy
|
|
actions+=/quell,use_off_gcd=1
|
|
actions+=/unravel
|
|
actions+=/expunge,enabled=0,if=debuff.dispellable_poison.up
|
|
# [Hekili] No API available for detecting bleeds
|
|
actions+=/cauterizing_flame,enabled=0,if=debuff.dispellable_poison.up|debuff.dispellable_curse.up|debuff.dispellable_disease.up
|
|
# [Hekili] Recommended to link to toggle.interrupts with Show Separately enabled
|
|
actions+=/hover,enabled=0,if=moving&buff.hover.down
|
|
# Delay pot in ST if you are about to SS - mostly relevant for opener where you want DR->FB->SS->rotation
|
|
actions+=/potion,if=(!talent.dragonrage|buff.dragonrage.up)&(!cooldown.shattering_star.up|debuff.shattering_star_debuff.up|active_enemies>=2)|boss&fight_remains<35
|
|
actions+=/call_action_list,name=trinkets
|
|
actions+=/run_action_list,name=aoe,strict=1,if=active_enemies>2
|
|
actions+=/run_action_list,name=st,strict=1,if=active_enemies<3
|
|
|
|
# AOE action list; Open with star before DR to save a global and start with a free EB BaumChange 2: Don't do as FS - Neutral
|
|
actions.aoe+=/shattering_star,cycle_targets=1,if=(cooldown.dragonrage.up&talent.arcane_vigor|talent.eternitys_span&active_enemies<=3)&!talent.engulf
|
|
actions.aoe+=/hover,use_off_gcd=1,if=raid_event.movement.in<6&!buff.hover.up&gcd.remains>=0.5&(buff.mass_disintegrate_stacks.up&talent.mass_disintegrate|active_enemies<=4)
|
|
# Spend firestorm procs ASAP
|
|
actions.aoe+=/firestorm,if=buff.snapfire.up&!talent.feed_the_flames
|
|
actions.aoe+=/variable,name=engulf_condition,value=dot.fire_breath_damage.remains>(action.engulf.travel_time+2*action.engulf.in_flight)&(variable.next_dragonrage>=cooldown*1.2|!talent.dragonrage)
|
|
# BaumChange 1: Send DB before DR if FS FS FTF - +30k in 5T
|
|
actions.aoe+=/deep_breath,if=talent.maneuverability&talent.melt_armor&!cooldown.fire_breath.up&!cooldown.eternity_surge.up|talent.feed_the_flames&talent.engulf&talent.imminent_destruction&(cooldown.engulf.remains>4|!variable.engulf_condition)
|
|
# Acquire the buff BaumChange #3: Keep it from hardcasting firestorm while the SS debuff is running. I know the condition is garbage but it works - +20k in 5T
|
|
actions.aoe+=/firestorm,if=talent.feed_the_flames&(!talent.engulf|cooldown.engulf.remains>4|cooldown.engulf.charges=0|(variable.next_dragonrage<=cooldown*1.2|!talent.dragonrage))
|
|
# Grab Irid Red before Dragonrage without griefing extension
|
|
actions.aoe+=/call_action_list,name=fb,strict_if=talent.dragonrage&(talent.iridescence|talent.scorching_embers)&!talent.engulf,if=talent.dragonrage&cooldown.dragonrage.up&(talent.iridescence|talent.scorching_embers)&!talent.engulf
|
|
actions.aoe+=/dragonrage
|
|
# Tip ES at appropiate target count or when playing Flameshaper otherwise Tip FB
|
|
actions.aoe+=/tip_the_scales,if=(!talent.dragonrage|buff.dragonrage.up)&(cooldown.fire_breath.remains<=cooldown.eternity_surge.remains|(cooldown.eternity_surge.remains<=cooldown.fire_breath.remains&talent.font_of_magic)&!talent.engulf)
|
|
# BaumChange 2: Do as FS - Neutral
|
|
actions.aoe+=/shattering_star,if=(cooldown.dragonrage.up&talent.arcane_vigor|talent.eternitys_span&active_enemies<=3)&talent.engulf
|
|
actions.aoe+=/dragonrage,if=target.time_to_die>=32|active_enemies>=3&target.time_to_die>=15|boss&fight_remains<30
|
|
# Cast Fire Breath DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s
|
|
actions.aoe+=/call_action_list,name=fb,strict=1,if=(!talent.dragonrage|buff.dragonrage.up|cooldown.dragonrage.remains>variable.dr_prep_time_aoe|!talent.animosity|talent.flame_siphon)&(target.time_to_die>=8|talent.mass_disintegrate)
|
|
actions.aoe+=/call_action_list,name=es,strict_if=(!talent.dragonrage|buff.dragonrage.up|cooldown.dragonrage.remains>variable.dr_prep_time_aoe|!talent.animosity),if=(!talent.dragonrage|buff.dragonrage.up|cooldown.dragonrage.remains>variable.dr_prep_time_aoe|!talent.animosity)&(!buff.jackpot.up|!set_bonus.tww2_4pc|talent.mass_disintegrate)
|
|
actions.aoe+=/deep_breath,if=!buff.dragonrage.up&essence.deficit>3
|
|
# Send SS when it doesn't overflow EB, without vigor send on CD BaumChange 3: Save SS for Engulf - +20k in 5T
|
|
actions.aoe+=/shattering_star,cycle_targets=1,if=(buff.essence_burst.stack<buff.essence_burst.max_stack&talent.arcane_vigor|talent.eternitys_span&active_enemies<=3|set_bonus.tww2_4pc&buff.jackpot.stack<2)&(!talent.engulf|cooldown.engulf.remains<4|cooldown.engulf.charges>0)
|
|
# [Hekili] Re-revised Fire Breath debuff remaining so that you get back-to-back Engulfs easier.
|
|
actions.aoe+=/engulf,cycle_targets=1,if=variable.engulf_condition
|
|
actions.aoe+=/pyre,if=buff.charged_blast.stack>=12&(cooldown.dragonrage.remains>gcd.max*4|!talent.dragonrage)
|
|
# Use Mass Disintegrate if CB wont't overcap
|
|
actions.aoe+=/disintegrate,cycle_targets=1,if=buff.mass_disintegrate_stacks.up&talent.mass_disintegrate&(!variable.pool_for_id|buff.mass_disintegrate_stacks.remains<=buff.mass_disintegrate_stacks.stack*(duration+0.1))
|
|
# Use Deep Breath on 2T, unless adds will come before it'll be ready again or if talented ID.
|
|
actions.aoe+=/deep_breath,if=talent.imminent_destruction&!buff.essence_burst.up
|
|
# Pyre 4T+ - 3T+ with Volatility - 12 stacks of CB - Pool CB for DR
|
|
actions.aoe+=/pyre,if=(active_enemies>=4-(buff.imminent_destruction.up)|talent.volatility|talent.scorching_embers&active_dot.fire_breath_damage>=active_enemies*0.75)&(cooldown.dragonrage.remains>gcd.max*4|!talent.dragonrage|!talent.charged_blast)&!variable.pool_for_id&(!buff.mass_disintegrate_stacks.up|buff.essence_burst.stack=2|buff.essence_burst.stack=1&essence>=(3-buff.imminent_destruction.up)|essence>=(5-buff.imminent_destruction.up*2))
|
|
# Cast LF with leaping flames up if: not playing burnout, burnout is up or the next firebreath is soon.
|
|
actions.aoe+=/living_flame,cycle_targets=1,if=(!talent.burnout|buff.burnout.up|cooldown.fire_breath.remains<=gcd.max*5|buff.scarlet_adaptation.up|buff.ancient_flame.up)&buff.leaping_flames.up&(!buff.essence_burst.up&essence.deficit>1|cooldown.fire_breath.remains<=gcd.max*3&buff.essence_burst.stack<buff.essence_burst.max_stack)
|
|
# Yoinked the disintegrate logic from ST
|
|
actions.aoe+=/disintegrate,cycle_targets=1,chain=1,early_chain_if=evoker.use_early_chaining&ticks>=2&(raid_event.movement.in>2|buff.hover.up),interrupt_if=evoker.use_clipping&buff.dragonrage.up&ticks>=2&(raid_event.movement.in>2|buff.hover.up),if=(raid_event.movement.in>2|buff.hover.up)&!variable.pool_for_id&(active_enemies<=4|buff.mass_disintegrate_stacks.up)
|
|
# Cast LF with burnout to fish for snapfire procs
|
|
actions.aoe+=/living_flame,cycle_targets=1,if=talent.snapfire&buff.burnout.up
|
|
# Get Ancient Flame as Filler
|
|
actions.aoe+=/call_action_list,name=green,strict_if=talent.ancient_flame,if=talent.ancient_flame&!buff.ancient_flame.up&!buff.dragonrage.up
|
|
actions.aoe+=/living_flame,if=talent.snapfire&!talent.engulfing_blaze
|
|
# Fallback filler
|
|
actions.aoe+=/azure_strike,cycle_targets=1
|
|
|
|
# Eternity Surge, use rank most applicable to targets.
|
|
actions.es+=/eternity_surge,empower_to=1,cycle_targets=1,if=active_enemies<=1+talent.eternitys_span|(variable.can_extend_dr&talent.animosity|talent.mass_disintegrate)&active_enemies>(3+talent.font_of_magic+4*talent.eternitys_span)|buff.dragonrage.remains<1.75*spell_haste&buff.dragonrage.remains>=1*spell_haste&talent.animosity&variable.can_extend_dr
|
|
actions.es+=/eternity_surge,empower_to=2,cycle_targets=1,if=active_enemies<=2+2*talent.eternitys_span|buff.dragonrage.remains<2.5*spell_haste&buff.dragonrage.remains>=1.75*spell_haste
|
|
actions.es+=/eternity_surge,empower_to=3,cycle_targets=1,if=active_enemies<=3+3*talent.eternitys_span|!talent.font_of_magic&talent.mass_disintegrate|buff.dragonrage.remains<=3.25*spell_haste&buff.dragonrage.remains>=2.5*spell_haste
|
|
actions.es+=/eternity_surge,empower_to=4,cycle_targets=1,if=talent.mass_disintegrate|active_enemies<=4+4*talent.eternitys_span
|
|
|
|
# Fire Breath, use rank appropriate to target count/talents.
|
|
actions.fb+=/fire_breath,empower_to=2,if=talent.scorching_embers&(cooldown.engulf.remains<=duration+0.5|cooldown.engulf.up)&talent.engulf&release.dot_duration<=fight_remains
|
|
actions.fb+=/fire_breath,empower_to=3,if=talent.scorching_embers&(cooldown.engulf.remains<=duration+0.5|cooldown.engulf.up)&talent.engulf&(release.dot_duration<=fight_remains|!talent.font_of_magic)
|
|
actions.fb+=/fire_breath,empower_to=4,if=talent.scorching_embers&(cooldown.engulf.remains<=duration+0.5|cooldown.engulf.up)&talent.engulf&talent.font_of_magic
|
|
actions.fb+=/fire_breath,empower_to=1,if=((buff.dragonrage.remains<1.75*spell_haste&buff.dragonrage.remains>=1*spell_haste)&talent.animosity&variable.can_extend_dr|active_enemies=1)&release.dot_duration<=fight_remains
|
|
actions.fb+=/fire_breath,empower_to=2,if=((buff.dragonrage.remains<2.5*spell_haste&buff.dragonrage.remains>=1.75*spell_haste)&talent.animosity&variable.can_extend_dr|talent.scorching_embers|active_enemies>=2)&release.dot_duration<=fight_remains
|
|
actions.fb+=/fire_breath,empower_to=3,if=!talent.font_of_magic|((buff.dragonrage.remains<=3.25*spell_haste&buff.dragonrage.remains>=2.5*spell_haste)&talent.animosity&variable.can_extend_dr|talent.scorching_embers)&release.dot_duration<=fight_remains
|
|
|
|
# Green Spells used to trigger Ancient Flame
|
|
actions.green+=/emerald_blossom
|
|
actions.green+=/verdant_embrace
|
|
|
|
# Become a Superior Dragon
|
|
actions.st+=/dragonrage
|
|
# Flap wings
|
|
actions.st+=/hover,use_off_gcd=1,if=raid_event.movement.in<6&!buff.hover.up&gcd.remains>=0.5|talent.slipstream&gcd.remains>=0.5
|
|
# Become a faster dragon (for one empower)
|
|
actions.st+=/tip_the_scales,use_off_gcd=1,if=buff.dragonrage.up&cooldown.fire_breath.remains<=cooldown.eternity_surge.remains
|
|
# Dont overcap with Vigor. With TWWS2 this is neutral but it will stay for posterity.
|
|
actions.st+=/shattering_star,if=(buff.essence_burst.stack<buff.essence_burst.max_stack|!talent.arcane_vigor)
|
|
# If has scorch and the gulf is gulfable do a four empower unless you could get away with a R1.
|
|
actions.st+=/fire_breath,empower_to=4,if=(talent.scorching_embers&talent.engulf&action.engulf.usable_in<=duration+0.5)&variable.can_use_empower&cooldown.engulf.full_recharge_time<=cooldown.fire_breath.duration_expected+4
|
|
# Sad Engulf Noises (Fulminous Roar Sucks)
|
|
actions.st+=/fire_breath,empower_to=1,if=talent.engulf&talent.fulminous_roar&variable.can_use_empower
|
|
# R2 funny breath good default for SC.
|
|
actions.st+=/fire_breath,empower_to=2,if=variable.can_use_empower&!buff.dragonrage.up
|
|
actions.st+=/fire_breath,empower_to=1,if=variable.can_use_empower
|
|
# [Hekili] Modified to ignore Ruby Embers if applying it is going to waste the Fire Breath dot.
|
|
actions.st+=/engulf,if=(dot.fire_breath_damage.remains>travel_time)&(dot.living_flame_damage.remains>travel_time|dot.fire_breath_damage.remains<action.living_flame.cast_time+travel_time+0.5|!talent.ruby_embers)&(dot.enkindle.remains>travel_time|!talent.enkindle)&(!talent.iridescence|buff.iridescence_red.up)&(!talent.scorching_embers|dot.fire_breath_damage.duration<=6|boss&fight_remains<=30)&(debuff.shattering_star_debuff.remains>travel_time|full_recharge_time<action.shattering_star.usable_in|talent.scorching_embers)
|
|
# Why would you do this to yourself. Talent span right meow.
|
|
actions.st+=/eternity_surge,empower_to=2,if=(!talent.power_swell|buff.power_swell.remains<=duration|!talent.mass_disintegrate)&active_enemies=2&!talent.eternitys_span&variable.can_use_empower
|
|
# Surge all of eternity and swell power (but not if :engulf:)
|
|
actions.st+=/eternity_surge,empower_to=1,if=(!talent.power_swell|buff.power_swell.remains<=duration|!talent.mass_disintegrate)&variable.can_use_empower
|
|
# Burnout LF for EB if DR expire soon
|
|
actions.st+=/living_flame,if=buff.dragonrage.up&buff.dragonrage.remains<(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max&buff.burnout.up
|
|
# AS for EB if DR expire soon
|
|
actions.st+=/azure_strike,if=buff.dragonrage.up&buff.dragonrage.remains<(buff.essence_burst.max_stack-buff.essence_burst.stack)*gcd.max
|
|
# Snappy FS big pump
|
|
actions.st+=/firestorm,if=buff.snapfire.up|active_enemies>=2
|
|
# Use the Deeper Breath
|
|
actions.st+=/deep_breath,if=talent.imminent_destruction|talent.melt_armor|talent.maneuverability
|
|
# Mass Disintegrator pov
|
|
actions.st+=/disintegrate,cycle_targets=1,early_chain_if=ticks_remain<=1&buff.mass_disintegrate_stacks.up,if=(raid_event.movement.in>2|buff.hover.up)&buff.mass_disintegrate_stacks.up&talent.mass_disintegrate&!variable.pool_for_id
|
|
# Secret tech (dont leak)
|
|
actions.st+=/pyre,if=talent.snapfire&active_enemies>=2&talent.volatility.rank>=2&(!talent.azure_celerity|talent.feed_the_flames)
|
|
# Disintegrator pov
|
|
actions.st+=/disintegrate,cycle_targets=1,chain=1,if=(raid_event.movement.in>2|buff.hover.up)&!variable.pool_for_id
|
|
# Get Ancient Flame if you have Engulfing Blaze and nothing interesting is happening
|
|
actions.st+=/call_action_list,name=green,strict_if=talent.ancient_flame&talent.scarlet_adaptation&talent.engulfing_blaze,if=talent.ancient_flame&!buff.ancient_flame.up&!buff.shattering_star_debuff.up&talent.scarlet_adaptation&!buff.dragonrage.up&!buff.burnout.up&talent.engulfing_blaze
|
|
# LF Gooder
|
|
actions.st+=/living_flame,if=buff.burnout.up|buff.leaping_flames.up|buff.ancient_flame.up
|
|
# AS Gooder
|
|
actions.st+=/azure_strike,if=active_enemies>=2&!talent.snapfire
|
|
# LF
|
|
actions.st+=/living_flame
|
|
# Cry
|
|
actions.st+=/azure_strike
|
|
|
|
actions.trinkets+=/use_item,name=spymasters_web,if=buff.dragonrage.up&(fight_remains<130)&buff.spymasters_report.stack>=15|(boss&fight_remains<=20|cooldown.engulf.up&talent.engulf&fight_remains<=40&cooldown.dragonrage.remains>=40)
|
|
actions.trinkets+=/use_item,name=neural_synapse_enhancer,if=buff.dragonrage.up|!talent.dragonrage|cooldown.dragonrage.remains>=5
|
|
# The trinket with the highest estimated value, will be used first and paired with Dragonrage. Trinkets are used on 4 stacks of Emerald Trance, unless playing double buff trinket, then one is used after SS/FB and the next on CD. Or with DR in AoE
|
|
actions.trinkets+=/use_item,slot=trinket1,if=buff.dragonrage.up&((variable.trinket_2_buffs&!cooldown.fire_breath.up&!cooldown.shattering_star.up&trinket.2.cooldown.remains)|buff.tip_the_scales.up&(!cooldown.shattering_star.up|talent.engulf)&variable.trinket_priority=1|(!cooldown.fire_breath.up&!cooldown.shattering_star.up)|active_enemies>=3)&(!trinket.2.has_cooldown|trinket.2.cooldown.remains|variable.trinket_priority=1|variable.trinket_2_exclude)&!variable.trinket_1_manual|trinket.1.proc.any_dps.duration>=fight_remains|trinket.1.cooldown.duration<=60&(variable.next_dragonrage>20|!talent.dragonrage)&(!buff.dragonrage.up|variable.trinket_priority=1)&!variable.trinket_1_manual
|
|
actions.trinkets+=/use_item,slot=trinket2,if=buff.dragonrage.up&((variable.trinket_1_buffs&!cooldown.fire_breath.up&!cooldown.shattering_star.up&trinket.1.cooldown.remains)|buff.tip_the_scales.up&(!cooldown.shattering_star.up|talent.engulf)&variable.trinket_priority=2|(!cooldown.fire_breath.up&!cooldown.shattering_star.up)|active_enemies>=3)&(!trinket.1.has_cooldown|trinket.1.cooldown.remains|variable.trinket_priority=2|variable.trinket_1_exclude)&!variable.trinket_2_manual|trinket.2.proc.any_dps.duration>=fight_remains|trinket.2.cooldown.duration<=60&(variable.next_dragonrage>20|!talent.dragonrage)&(!buff.dragonrage.up|variable.trinket_priority=2)&!variable.trinket_2_manual
|
|
actions.trinkets+=/use_item,slot=main_hand,if=variable.weapon_buffs&((variable.trinket_2_buffs&(trinket.2.cooldown.remains|trinket.2.cooldown.duration<=20)|!variable.trinket_2_buffs|variable.trinket_2_exclude|variable.trinket_priority=3)&(variable.trinket_1_buffs&(trinket.1.cooldown.remains|trinket.1.cooldown.duration<=20)|!variable.trinket_1_buffs|variable.trinket_1_exclude|variable.trinket_priority=3)&(!cooldown.fire_breath.up&!cooldown.shattering_star.up|buff.tip_the_scales.up&(!cooldown.shattering_star.up|talent.engulf)|(!cooldown.fire_breath.up&!cooldown.shattering_star.up)|active_enemies>=3))&(variable.next_dragonrage>20|!talent.dragonrage)&(!buff.dragonrage.up|variable.trinket_priority=3|variable.trinket_priority=1&trinket.1.cooldown.remains|variable.trinket_priority=2&trinket.2.cooldown.remains)
|
|
# If only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.
|
|
actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&(variable.damage_trinket_priority=1|trinket.2.cooldown.remains|trinket.2.is.spymasters_web|trinket.2.cooldown.duration=0)&(gcd.remains>0.1&!prev_gcd.1.deep_breath)&(variable.next_dragonrage>20|!talent.dragonrage|!variable.trinket_2_buffs|trinket.2.is.spymasters_web&(buff.spymasters_report.stack<5|fight_remains>=130+variable.next_dragonrage))
|
|
actions.trinkets+=/use_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(variable.damage_trinket_priority=2|trinket.1.cooldown.remains|trinket.1.is.spymasters_web|trinket.1.cooldown.duration=0)&(gcd.remains>0.1&!prev_gcd.1.deep_breath)&(variable.next_dragonrage>20|!talent.dragonrage|!variable.trinket_1_buffs|trinket.1.is.spymasters_web&(buff.spymasters_report.stack<5|fight_remains>=130+variable.next_dragonrage))
|
|
actions.trinkets+=/use_item,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&(variable.damage_trinket_priority=1|trinket.2.cooldown.remains|trinket.2.is.spymasters_web|trinket.2.cooldown.duration=0)&(!variable.trinket_1_ogcd_cast)&(variable.next_dragonrage>20|!talent.dragonrage|!variable.trinket_2_buffs|trinket.2.is.spymasters_web&(buff.spymasters_report.stack<5|fight_remains>=130+variable.next_dragonrage))
|
|
actions.trinkets+=/use_item,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&(variable.damage_trinket_priority=2|trinket.1.cooldown.remains|trinket.1.is.spymasters_web|trinket.1.cooldown.duration=0)&(!variable.trinket_2_ogcd_cast)&(variable.next_dragonrage>20|!talent.dragonrage|!variable.trinket_1_buffs|trinket.1.is.spymasters_web&(buff.spymasters_report.stack<5|fight_remains>=130+variable.next_dragonrage))
|