Cogspark

Cogspark Works · Rotation

Augmentation Evoker

The priority list SimulationCraft plays this spec with · engine build 20261019-1860cd1-w8a2c73d · game data 12.1.5.70448

§1How to read this

A rotation in SimulationCraft is a priority list, not a sequence. Every time the character can act, the sim starts at the top of The main loop and does the first line whose conditions hold. Lower lines only happen when nothing above them fits.

  • The page shows the list as a decision tree: set what you know about the fight and your talents, and it lights the lists the sim checks, in order.
  • Cast lines use the ability. Hover, focus or tap an icon or a name for its tooltip.
  • Go through another list: its lines are checked in order; when none of them fits, the sim comes back and carries on with the next line here.
  • Switch to another list: the rest of this list is skipped and the choice is made from that list alone.
  • Helpers are values the list works out on the spot, such as “are we holding a cooldown”. Setting one takes no time and the list carries on. The tree works out the ones your situation settles.

The list is written to perform well in the sim, not to be the only right way to play. Every line keeps its original simc text under the simc toggle at its right, and the list author’s note where there is one.

§2Decision tree

Set what you know. The tree lights the lists the sim checks, top to bottom; in each list it presses the first ability whose conditions hold and that is ready. Readiness (cooldowns, resources) isn’t in the list, so a lit ability is the first one allowed, not a promise it is cast.

Your situation
Enemies in range
Your talents (click: talented, not talented, not set)
Checked
  1. The main loop
  2. Items
  3. Filler
Before the pull, done once before the fight starts (28 steps)

Before the pull28 lines

  1. Record your stats before the pull (sim bookkeeping)
    simcsnapshot_stats
  2. Reset spam heal to its starting valuespam heal starts each fight at 0
    simcvariable,name=spam_heal,default=0,op=reset
  3. Reset minimum opener delay to its starting valueminimum opener delay starts each fight at 0
    simcvariable,name=minimum_opener_delay,op=reset,default=0
  4. Set opener delay to minimum opener delay
    you don't have Interwoven Threads talented
    simcvariable,name=opener_delay,value=variable.minimum_opener_delay,if=!talent.interwoven_threads
  5. Set opener delay to minimum opener delay plus opener delay
    you have Interwoven Threads talented
    simcvariable,name=opener_delay,value=variable.minimum_opener_delay+variable.opener_delay,if=talent.interwoven_threads
  6. Reset opener cds detected to its starting valueopener cds detected starts each fight at 0
    simcvariable,name=opener_cds_detected,op=reset,default=0
  7. Set trinket 1 exclude to true when the following holds, otherwise false
    any of these:
    • trinket 1 is Ruby Whelp Shell
    • trinket 1 is Whispering Incarnate Icon
    • trinket 1 is Ovinaxs Mercurial Egg
    • trinket 1 is Aberrant Spellforge
    simcvariable,name=trinket_1_exclude,value=trinket.1.is.ruby_whelp_shell|trinket.1.is.whispering_incarnate_icon|trinket.1.is.ovinaxs_mercurial_egg|trinket.1.is.aberrant_spellforge
  8. Set trinket 2 exclude to true when the following holds, otherwise false
    any of these:
    • trinket 2 is Ruby Whelp Shell
    • trinket 2 is Whispering Incarnate Icon
    • trinket 2 is Ovinaxs Mercurial Egg
    • trinket 2 is Aberrant Spellforge
    simcvariable,name=trinket_2_exclude,value=trinket.2.is.ruby_whelp_shell|trinket.2.is.whispering_incarnate_icon|trinket.2.is.ovinaxs_mercurial_egg|trinket.2.is.aberrant_spellforge
  9. Set trinket 1 manual to true when the following holds, otherwise false
    any of these:
    • trinket 1 is Nymues Unraveling Spindle
    • trinket 1 is Spymasters Web
    • trinket 1 is Treacherous Transmitter
    • trinket 1 is House of Cards
    • trinket 1 is Vaelgors Final Stare
    • trinket 1 is Hex Lords Dooming Idol
    • trinket 1 is Font of Venomous Rage
    • trinket 1 is Stormbound Emblem of Dazar
    Nymues is complicated, Manual Handle
    simcvariable,name=trinket_1_manual,value=trinket.1.is.nymues_unraveling_spindle|trinket.1.is.spymasters_web|trinket.1.is.treacherous_transmitter|trinket.1.is.house_of_cards|trinket.1.is.vaelgors_final_stare|trinket.1.is.hex_lords_dooming_idol|trinket.1.is.font_of_venomous_rage|trinket.1.is.stormbound_emblem_of_dazar
  10. Set trinket 2 manual to true when the following holds, otherwise false
    any of these:
    • trinket 2 is Nymues Unraveling Spindle
    • trinket 2 is Spymasters Web
    • trinket 2 is Treacherous Transmitter
    • trinket 2 is House of Cards
    • trinket 2 is Vaelgors Final Stare
    • trinket 2 is Hex Lords Dooming Idol
    • trinket 2 is Font of Venomous Rage
    • trinket 2 is Stormbound Emblem of Dazar
    simcvariable,name=trinket_2_manual,value=trinket.2.is.nymues_unraveling_spindle|trinket.2.is.spymasters_web|trinket.2.is.treacherous_transmitter|trinket.2.is.house_of_cards|trinket.2.is.vaelgors_final_stare|trinket.2.is.hex_lords_dooming_idol|trinket.2.is.font_of_venomous_rage|trinket.2.is.stormbound_emblem_of_dazar
  11. Set trinket 1 ogcd cast to true when the following holds, otherwise false
    trinket 1 is Beacon to the Beyond
    simcvariable,name=trinket_1_ogcd_cast,value=trinket.1.is.beacon_to_the_beyond
  12. Set trinket 2 ogcd cast to true when the following holds, otherwise false
    trinket 2 is Beacon to the Beyond
    simcvariable,name=trinket_2_ogcd_cast,value=trinket.2.is.beacon_to_the_beyond
  13. Set trinket 1 buffs to true when the following holds, otherwise false
    all of these:
    • any of these:
      • trinket 1 has an on-use effect that grants a stat buff
      • all of these:
        • any of these:
          • trinket 1 can grant Intellect
          • trinket 1 can grant Mastery
          • trinket 1 can grant Versatility
          • trinket 1 can grant Haste
          • trinket 1 can grant Critical Strike
        • trinket 1 exclude is false
    • trinket 1 isn't Flarendos Pilot Light
    simcvariable,name=trinket_1_buffs,value=(trinket.1.has_use_buff|(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)&!variable.trinket_1_exclude)&(!trinket.1.is.flarendos_pilot_light)
  14. Set trinket 2 buffs to true when the following holds, otherwise false
    all of these:
    • any of these:
      • trinket 2 has an on-use effect that grants a stat buff
      • all of these:
        • any of these:
          • trinket 2 can grant Intellect
          • trinket 2 can grant Mastery
          • trinket 2 can grant Versatility
          • trinket 2 can grant Haste
          • trinket 2 can grant Critical Strike
        • trinket 2 exclude is false
    • trinket 2 isn't Flarendos Pilot Light
    simcvariable,name=trinket_2_buffs,value=(trinket.2.has_use_buff|(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)&!variable.trinket_2_exclude)&(!trinket.2.is.flarendos_pilot_light)
  15. Set trinket 1 sync to 1 when the following holds, otherwise to 0.5
    all of these:
    • trinket 1 buffs is true
    • the remainder of trinket 1's cooldown divided by 120 is 0
    simcvariable,name=trinket_1_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_1_buffs&(trinket.1.cooldown.duration%%120=0)
  16. Set trinket 2 sync to 1 when the following holds, otherwise to 0.5
    all of these:
    • trinket 2 buffs is true
    • the remainder of trinket 2's cooldown divided by 120 is 0
    simcvariable,name=trinket_2_sync,op=setif,value=1,value_else=0.5,condition=variable.trinket_2_buffs&(trinket.2.cooldown.duration%%120=0)
  17. Set trinket priority to 2 when the following holds, otherwise to 1
    any of these:
    • all of these:
      • trinket 1 buffs is false
      • trinket 2 buffs is true
      • any of these:
        • all of these:
          • trinket 2 has a cooldown
          • trinket 2 exclude is false
        • trinket 1 has no cooldown
    • all of these:
      • trinket 2 buffs is true
      • trinket 2's cooldown divided by trinket 2's stat buff's duration times (0.5 plus (3 if trinket 2 can grant Intellect, else 0) plus (1 if trinket 2 can grant Mastery, else 0)) times trinket 2 sync is more than trinket 1's cooldown divided by trinket 1's stat buff's duration times (0.5 plus (3 if trinket 1 can grant Intellect, else 0) plus (1 if trinket 1 can grant Mastery, else 0)) times trinket 1 sync times (1 plus ((trinket 1's item level minus trinket 2's item level) divided by 100))
    simcvariable,name=trinket_priority,op=setif,value=2,value_else=1,condition=!variable.trinket_1_buffs&variable.trinket_2_buffs&(trinket.2.has_cooldown&!variable.trinket_2_exclude|!trinket.1.has_cooldown)|variable.trinket_2_buffs&((trinket.2.cooldown.duration%trinket.2.proc.any_dps.duration)*(0.5+trinket.2.has_buff.intellect*3+trinket.2.has_buff.mastery)*(variable.trinket_2_sync))>((trinket.1.cooldown.duration%trinket.1.proc.any_dps.duration)*(0.5+trinket.1.has_buff.intellect*3+trinket.1.has_buff.mastery)*(variable.trinket_1_sync)*(1+((trinket.1.ilvl-trinket.2.ilvl)%100)))
  18. Set damage trinket priority to 2 when the following holds, otherwise to 1
    all of these:
    • trinket 1 buffs is false
    • trinket 2 buffs is false
    • trinket 2's item level is at least trinket 1's item level
    simcvariable,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
  19. Set trinket priority to 2 when the following holds, otherwise to 1
    any of these:
    • all of these:
      • trinket 1 is Nymues Unraveling Spindle
      • trinket 2 can grant Intellect
    • all of these:
      • trinket 2 is Nymues Unraveling Spindle
      • trinket 1 can't grant Intellect
    Only updated when (trinket 1 is Nymues Unraveling Spindle or trinket 2 is Nymues Unraveling Spindle) and trinket 1 buffs is true and trinket 2 buffs is trueDouble on use - Priotize Intellect on use trinkets over Nymues, force overwriting the normal logic to guarantee it is correct.
    simcvariable,name=trinket_priority,op=setif,value=2,value_else=1,condition=trinket.1.is.nymues_unraveling_spindle&trinket.2.has_buff.intellect|trinket.2.is.nymues_unraveling_spindle&!trinket.1.has_buff.intellect,if=(trinket.1.is.nymues_unraveling_spindle|trinket.2.is.nymues_unraveling_spindle)&(variable.trinket_1_buffs&variable.trinket_2_buffs)
  20. Reset ebon might pandemic threshold to its starting valueebon might pandemic threshold starts each fight at 0.4
    simcvariable,name=ebon_might_pandemic_threshold,op=reset,default=0.4
  21. Reset enforce timings to its starting valueenforce timings starts each fight at 0
    simcvariable,name=enforce_timings,op=reset,default=0
  22. Reset spam on use trinket to its starting valuespam on use trinket starts each fight at 1
    simcvariable,name=spam_on_use_trinket,op=reset,default=1
  23. Reset azure st filler to its starting valueazure st filler starts each fight at 1
    simcvariable,name=azure_st_filler,op=reset,default=1
  24. Reset bombardments pooling to its starting valuebombardments pooling starts each fight at 1
    simcvariable,name=bombardments_pooling,op=reset,default=1
  25. Reset crit fish to its starting valuecrit fish starts each fight at 1
    simcvariable,name=crit_fish,op=reset,default=1
  26. Use Aberrant Spellforge
    simcuse_item,name=aberrant_spellforge
  27. Cast Blistering Scalestarget on the first enemy where target.role.tank
    simcblistering_scales,target_if=target.role.tank
  28. Cast Living Flame
    simcliving_flame

The main loop23 lines

  1. Set eons remains to the cooldown left on Allied Virtual Cd Time when the following holds, otherwise to the cooldown left on Breath of Eons
    enforce timings is true
    Only updated when you have Breath of Eons talented
    simcvariable,name=eons_remains,op=setif,value=cooldown.allied_virtual_cd_time.remains,value_else=cooldown.breath_of_eons.remains,condition=variable.enforce_timings,if=talent.breath_of_eons
  2. Cancel Tip the Scales if Fire Breath is on cooldown and you have Temporal Burst talented and you have Time Skip talented and you don't have Interwoven Threads talented
    simccancel_buff,name=tip_the_scales,if=cooldown.fire_breath.remains>0&talent.temporal_burst&talent.time_skip&!talent.interwoven_threads
  3. Cast Hover if the time left on the global cooldown is at least 0.5 s and (the fight has no movement phases or the next movement phase starts within 6 s)Used without waiting for the global cooldown
    simchover,use_off_gcd=1,if=gcd.remains>=0.5&(!raid_event.movement.exists|raid_event.movement.in<=6)
  4. Get Power Infusion from an ally if Duplicate is active
    simcinvoke_external_buff,name=power_infusion,if=buff.duplicate.up
  5. Drink a potion if consumable.potion_of_recklessness and you have Double-time talented
    simcpotion,if=consumable.potion_of_recklessness&talent.doubletime
  6. Cast Ebon Might if ((the time left on Ebon Might Self minus Ebon Might's cast time is at most Ebon Might Self's duration times ebon might pandemic threshold and (there are more than 0 enemies or the next add wave starts within 3 s)) or (you have Double-time talented and crit fish is at least 1)) and (eons remains is more than 0 or you don't have Double-time talented or Ebon Might Self is active)
    simcebon_might,if=(((buff.ebon_might_self.remains-cast_time)<=buff.ebon_might_self.duration*variable.ebon_might_pandemic_threshold)&(active_enemies>0|raid_event.adds.in<=3)|talent.doubletime&variable.crit_fish>=1)&(variable.eons_remains>0|!talent.doubletime|buff.ebon_might_self.up)
  7. Cast Prescience if Prescience has less than 2 global cooldowns left on the target, or isn't active and at most 8 s into the fighttarget on the enemy with the lowest time left on Prescience on the target minus (200 if (target.role.attack or target.role.spell or target.role.dps), else 0) plus (50 if the target's specialization is augmentation, else 0)
    simcprescience,target_if=min:(debuff.prescience.remains-200*(target.role.attack|target.role.spell|target.role.dps)+50*target.spec.augmentation),if=debuff.prescience.remains<gcd.max*2&time<=8
  8. Drink a potion if eons remains is at most 0 or Breath of Eons has at least 90 s of cooldown left or (the fight ends within 30 s and the sim's fight style isn't DungeonRoute)
    simcpotion,if=variable.eons_remains<=0|cooldown.breath_of_eons.remains>=90|fight_remains<=30&!fight_style.dungeonroute
  9. go through Items, then carry on below if nothing there fits

    simccall_action_list,name=items

    Items12 lines

    1. Use Vaelgors Final Stare if (evoker.shifting_buffs is at least 2 or (evoker.shifting_buffs is at least 1 and (Fire Breath comes off cooldown within 7 s or Upheaval comes off cooldown within 7 s)) or (Fire Breath is off cooldown and Upheaval is off cooldown)) and Breath of Eons is on cooldown and evoker.allied_cds_up is more than 0
      simcuse_item,name=vaelgors_final_stare,if=(evoker.shifting_buffs>=2|evoker.shifting_buffs>=1&(cooldown.fire_breath.remains<=7|cooldown.upheaval.remains<=7)|cooldown.fire_breath.up&cooldown.upheaval.up)&!cooldown.breath_of_eons.up&evoker.allied_cds_up>0
    2. Use Hex Lords Dooming Idol if ((Duplicate has at least 10 s left and Hex Lord's Doom has 8 or more stacks) or the fight ends within 35 s) and ((trinket 1 is Hex Lords Dooming Idol and (trinket 2's cooldown is at most 20 s or trinket 2 has at least 30 s of cooldown left)) or (trinket 2 is Hex Lords Dooming Idol and (trinket 1's cooldown is at most 20 s or trinket 1 has at least 30 s of cooldown left)) or Hex Lord's Doom has 10 or more stacks)
      simcuse_item,name=hex_lords_dooming_idol,if=(buff.duplicate.remains>=10&buff.hex_lords_doom.stack>=8|fight_remains<=35)&(trinket.1.is.hex_lords_dooming_idol&(trinket.2.cooldown.duration<=20|trinket.2.cooldown.remains>=30)|trinket.2.is.hex_lords_dooming_idol&(trinket.1.cooldown.duration<=20|trinket.1.cooldown.remains>=30)|buff.hex_lords_doom.stack>=10)
    3. Use Stormbound Emblem of Dazar
      simcuse_item,name=stormbound_emblem_of_dazar
    4. Use your trinket 1 if (trinket 1 buffs is true and trinket 1 manual is false and trinket 1 exclude is false and (Temporal Wound is active on the target or your last spell on the global cooldown was Breath of Eons or (you don't have Breath of Eons talented and Ebon Might Self is active and there are 1 or more enemies) or (spam on use trinket is true and (Breath of Eons is on cooldown or eons remains is at least 10)) or (trinket 2 buffs is true and trinket 2 is on cooldown and (your last spell on the global cooldown was Fire Breath or your last spell on the global cooldown was Upheaval) and Ebon Might Self is active)) and (trinket 2 exclude is true or trinket 2 has no cooldown or trinket 2 is on cooldown or trinket priority is 1)) or trinket 1's stat buff's duration is at least the time left in the fight
      simcuse_item,slot=trinket1,if=variable.trinket_1_buffs&!variable.trinket_1_manual&!variable.trinket_1_exclude&((debuff.temporal_wound.up|prev_gcd.1.breath_of_eons|!talent.breath_of_eons&buff.ebon_might_self.up&active_enemies>=1|variable.spam_on_use_trinket&(!cooldown.breath_of_eons.up|variable.eons_remains>=10))|variable.trinket_2_buffs&!trinket.2.cooldown.up&(prev_gcd.1.fire_breath|prev_gcd.1.upheaval)&buff.ebon_might_self.up)&(variable.trinket_2_exclude|!trinket.2.has_cooldown|trinket.2.cooldown.remains|variable.trinket_priority=1)|trinket.1.proc.any_dps.duration>=fight_remains
    5. Use your trinket 2 if (trinket 2 buffs is true and trinket 2 manual is false and trinket 2 exclude is false and (Temporal Wound is active on the target or your last spell on the global cooldown was Breath of Eons or (you don't have Breath of Eons talented and Ebon Might Self is active and there are 1 or more enemies) or (spam on use trinket is true and (Breath of Eons is on cooldown or eons remains is at least 10)) or (trinket 1 buffs is true and trinket 1 is on cooldown and (your last spell on the global cooldown was Fire Breath or your last spell on the global cooldown was Upheaval) and Ebon Might Self is active)) and (trinket 1 exclude is true or trinket 1 has no cooldown or trinket 1 is on cooldown or trinket priority is 2)) or trinket 2's stat buff's duration is at least the time left in the fight
      simcuse_item,slot=trinket2,if=variable.trinket_2_buffs&!variable.trinket_2_manual&!variable.trinket_2_exclude&((debuff.temporal_wound.up|prev_gcd.1.breath_of_eons|!talent.breath_of_eons&buff.ebon_might_self.up&active_enemies>=1|variable.spam_on_use_trinket&(!cooldown.breath_of_eons.up|variable.eons_remains>=10))|variable.trinket_1_buffs&!trinket.1.cooldown.up&(prev_gcd.1.fire_breath|prev_gcd.1.upheaval)&buff.ebon_might_self.up)&(variable.trinket_1_exclude|!trinket.1.has_cooldown|trinket.1.cooldown.remains|variable.trinket_priority=2)|trinket.2.proc.any_dps.duration>=fight_remains
    6. Cast Azure Strike if Item Cd 1141 is off cooldown and ((trinket 1 ogcd cast is true and trinket 1 is off cooldown and (damage trinket priority is 1 or trinket 2 is on cooldown)) or (trinket 2 ogcd cast is true and trinket 2 is off cooldown and (damage trinket priority is 2 or trinket 1 is on cooldown)))Azure Strike for OGCD trinkets. Ideally this would be Prescience casts in reality but this is simpler and seems to have no noticeable diferrence in DPS.
      simcazure_strike,if=cooldown.item_cd_1141.up&(variable.trinket_1_ogcd_cast&trinket.1.cooldown.up&(variable.damage_trinket_priority=1|trinket.2.cooldown.remains)|variable.trinket_2_ogcd_cast&trinket.2.cooldown.up&(variable.damage_trinket_priority=2|trinket.1.cooldown.remains))
    7. Use your trinket 1 if trinket 1 buffs is false and trinket 1 manual is false and trinket 1 exclude is false and (damage trinket priority is 1 or trinket 2 is on cooldown or (trinket 2 is Spymasters Web and Spymaster's Report has fewer than 30 stacks) or eons remains is at least 20 or you don't have Breath of Eons talented or trinket 2's cooldown is 0 s or trinket 2 exclude is true) and the time left on the global cooldown is more than 0.1 s and trinket 1 ogcd cast is trueUsed without waiting for the global cooldownIf only one on use trinket provides a buff, use the other on cooldown. Or if neither trinket provides a buff, use both on cooldown.
      simcuse_item,use_off_gcd=1,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&!variable.trinket_1_exclude&(variable.damage_trinket_priority=1|trinket.2.cooldown.remains|trinket.2.is.spymasters_web&buff.spymasters_report.stack<30|variable.eons_remains>=20|!talent.breath_of_eons|trinket.2.cooldown.duration=0|variable.trinket_2_exclude)&(gcd.remains>0.1&variable.trinket_1_ogcd_cast)
    8. Use your trinket 2 if trinket 2 buffs is false and trinket 2 manual is false and trinket 2 exclude is false and (damage trinket priority is 2 or trinket 1 is on cooldown or (trinket 1 is Spymasters Web and Spymaster's Report has fewer than 30 stacks) or eons remains is at least 20 or you don't have Breath of Eons talented or trinket 1's cooldown is 0 s or trinket 1 exclude is true) and the time left on the global cooldown is more than 0.1 s and trinket 2 ogcd cast is trueUsed without waiting for the global cooldown
      simcuse_item,use_off_gcd=1,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&!variable.trinket_2_exclude&(variable.damage_trinket_priority=2|trinket.1.cooldown.remains|trinket.1.is.spymasters_web&buff.spymasters_report.stack<30|variable.eons_remains>=20|!talent.breath_of_eons|trinket.1.cooldown.duration=0|variable.trinket_1_exclude)&(gcd.remains>0.1&variable.trinket_2_ogcd_cast)
    9. Use your trinket 1 if trinket 1 buffs is false and trinket 1 manual is false and trinket 1 exclude is false and (damage trinket priority is 1 or trinket 2 is on cooldown or (trinket 2 is Spymasters Web and Spymaster's Report has fewer than 30 stacks) or eons remains is at least 20 or you don't have Breath of Eons talented or trinket 2's cooldown is 0 s or trinket 2 exclude is true) and trinket 1 ogcd cast is false
      simcuse_item,slot=trinket1,if=!variable.trinket_1_buffs&!variable.trinket_1_manual&!variable.trinket_1_exclude&(variable.damage_trinket_priority=1|trinket.2.cooldown.remains|trinket.2.is.spymasters_web&buff.spymasters_report.stack<30|variable.eons_remains>=20|!talent.breath_of_eons|trinket.2.cooldown.duration=0|variable.trinket_2_exclude)&(!variable.trinket_1_ogcd_cast)
    10. Use your trinket 2 if trinket 2 buffs is false and trinket 2 manual is false and trinket 2 exclude is false and (damage trinket priority is 2 or trinket 1 is on cooldown or (trinket 1 is Spymasters Web and Spymaster's Report has fewer than 30 stacks) or eons remains is at least 20 or you don't have Breath of Eons talented or trinket 1's cooldown is 0 s or trinket 1 exclude is true) and trinket 2 ogcd cast is false
      simcuse_item,slot=trinket2,if=!variable.trinket_2_buffs&!variable.trinket_2_manual&!variable.trinket_2_exclude&(variable.damage_trinket_priority=2|trinket.1.cooldown.remains|trinket.1.is.spymasters_web&buff.spymasters_report.stack<30|variable.eons_remains>=20|!talent.breath_of_eons|trinket.1.cooldown.duration=0|variable.trinket_1_exclude)&(!variable.trinket_2_ogcd_cast)
    11. Use Bestinslots if Ebon Might Self is active and (trinket 1 buffs is false or trinket 1's cooldown is at most 20 s or trinket 1 has at least 10 s of cooldown left) and (trinket 2 buffs is false or trinket 2's cooldown is at most 20 s or trinket 2 has at least 10 s of cooldown left)Used without waiting for the global cooldown
      simcuse_item,name=bestinslots,use_off_gcd=1,if=buff.ebon_might_self.up&(!variable.trinket_1_buffs|trinket.1.cooldown.duration<=20|trinket.1.cooldown.remains>=10)&(!variable.trinket_2_buffs|trinket.2.cooldown.duration<=20|trinket.2.cooldown.remains>=10)
    12. Use the item in your main hand slot if the time left on the global cooldown is at least 0.6 global cooldowns and you don't have Bestinslots equippedUsed without waiting for the global cooldownUse on use weapons
      simcuse_item,slot=main_hand,use_off_gcd=1,if=gcd.remains>=gcd.max*0.6&!equipped.bestinslots
  10. Cast Fury of the Aspects if you have Time Convergence talented and Time Convergence Intellect isn't active and (you have 2 or more Essence or Essence Burst is active and you've had time to react to it) and eons remains is at least 8
    simcfury_of_the_aspects,if=talent.time_convergence&!buff.time_convergence_intellect.up&(essence>=2|buff.essence_burst.react)&variable.eons_remains>=8
  11. Cast Tip the Scales if (Breath of Eons is on cooldown or (Allied Virtual Cd Time is on cooldown and enforce timings is 1)) and (Fire Breath is off cooldown or (you have Temporal Burst talented and Fire Breath has more than 2 global cooldowns of cooldown left))
    simctip_the_scales,if=(!cooldown.breath_of_eons.up|!cooldown.allied_virtual_cd_time.up&variable.enforce_timings=1)&(cooldown.fire_breath.up|talent.temporal_burst&cooldown.fire_breath.remains>gcd.max*2)
  12. Cast Deep BreathCancel the channel when the global cooldown is over
    simcdeep_breath,cancel_if=gcd.remains<=0
  13. Cast Breath of Eons if (the target lives at least 20 s longer and enforce timings is false) or (enforce timings is true and Allied Virtual Cd Time is off cooldown)Cancel the channel when the global cooldown is over
    simcbreath_of_eons,if=target.time_to_die>=20&(!variable.enforce_timings)|variable.enforce_timings&cooldown.allied_virtual_cd_time.up,cancel_if=gcd.remains<=0
  14. Cast Eruption if you have Afterimage talented and Essence Burst is at maximum stacks
    simceruption,if=talent.afterimage&buff.essence_burst.at_max_stacks
  15. Cast Fire Breath if Ebon Might Self is active and Upheaval is off cooldowntarget on the first enemy where the target lives more than Fire Breath's duration plus 0.2 s longerEmpower it to rank 1
    simcfire_breath,target_if=target.time_to_die>duration+0.2,empower_to=1,if=buff.ebon_might_self.up&cooldown.upheaval.up
  16. Cast Fire Breath if Ebon Might Self is active and Upheaval is on cooldowntarget on the first enemy where the target lives more than Fire Breath's duration plus 0.2 s longerEmpower it to rank 3
    simcfire_breath,target_if=target.time_to_die>duration+0.2,empower_to=3,if=buff.ebon_might_self.up&!cooldown.upheaval.up
  17. Cast Upheaval if Ebon Might Self is active and Magnified Fate has at most Upheaval's duration left, or isn't activetarget on the first enemy where the target lives more than Upheaval's duration plus 0.2 s longerEmpower it to rank 1
    simcupheaval,target_if=target.time_to_die>duration+0.2,empower_to=1,if=buff.ebon_might_self.up&buff.magnified_fate.remains<=duration
  18. Cast Prescience if (Prescience has at most 2 global cooldowns left on the target, or isn't active and (you don't have Anachronism talented or the stacks of Essence Burst is less than the maximum stacks of Essence Burst)) or (Time Skip is off cooldown and you have Time Skip talented)target on the enemy with the highest score of: ((the smaller of target_cd_remains and Prescience's duration) times (1 plus (0.6 if the target's specialization is marksmanship, else 0) plus (0.2 if the target's specialization is arcane, else 0) plus (0.1 if the target's specialization is subtlety, else 0))) minus (20000 times (target.role.heal plus target.role.tank plus (1 if the target's specialization is augmentation, else 0) plus (1 if Prescience has more than 2 global cooldowns left on the target, else 0)))actions+=/prescience,target_if=min:(debuff.prescience.remains-200*(target.role.attack|target.role.spell|target.role.dps)+50*target.spec.augmentation),if=debuff.prescience.remains<gcd.max*2&(!talent.anachronism|buff.essence_burst.stack<buff.essence_burst.max_stack)|cooldown.time_skip.up&talent.time_skip
    simcprescience,target_if=max:(target_cd_remains>?debuff.prescience.duration)*(1+0.6*target.spec.marksmanship+0.2*target.spec.arcane+target.spec.subtlety*0.1)-20000*(target.role.heal+target.role.tank+target.spec.augmentation+(debuff.prescience.remains>gcd.max*2)),if=(debuff.prescience.remains<=gcd.max*2)&(!talent.anachronism|buff.essence_burst.stack<buff.essence_burst.max_stack)|cooldown.time_skip.up&talent.time_skip
  19. Cast Time Skip if (you don't have Chronoboon talented and Breath of Eons has at least 15 s of cooldown left) or (Tip the Scales has at least 6 s of cooldown left and Tip the Scales isn't active)
    simctime_skip,if=!talent.chronoboon&cooldown.breath_of_eons.remains>=15|cooldown.tip_the_scales.remains>=6&!buff.tip_the_scales.up
  20. Cast Emerald Blossom if you have Dream of Spring talented and Essence Burst is active and you've had time to react to it and (spam heal is 2 or (spam heal is 1 and Ancient Flame isn't active and you have Ancient Flame talented)) and (Ebon Might Self is active or your Essence is full or (the stacks of Essence Burst is the maximum stacks of Essence Burst and Ebon Might has more than 4 s of cooldown left))
    simcemerald_blossom,if=talent.dream_of_spring&buff.essence_burst.react&(variable.spam_heal=2|variable.spam_heal=1&!buff.ancient_flame.up&talent.ancient_flame)&(buff.ebon_might_self.up|essence.deficit=0|buff.essence_burst.stack=buff.essence_burst.max_stack&cooldown.ebon_might.remains>4)
  21. Cast Eruption if Ebon Might Self has more than Eruption's cast time lefttarget on the enemy with the highest time left on Bombardments on the target
    simceruption,target_if=max:debuff.bombardments.remains,if=buff.ebon_might_self.remains>execute_time
  22. Use Font of Venomous Rage
    simcuse_item,name=font_of_venomous_rage
  23. switch to Filler, and nothing below is checked

    simcrun_action_list,name=filler

    Filler2 lines

    1. Cast Living Flame if ((Ancient Flame is active or you have 200000 or more Mana or you don't have Dream of Spring talented or spam heal is false) and ((you have Pupil of Alexstrasza talented and there is more than one enemy) or (you don't have Echoing Strike talented and azure st filler is false) or (you have Chrono Flame talented and azure st filler is less than 2))) or Leaping Flames is active
      simcliving_flame,if=(buff.ancient_flame.up|mana>=200000|!talent.dream_of_spring|variable.spam_heal=0)&(talent.pupil_of_alexstrasza&active_enemies>1|!talent.echoing_strike&!variable.azure_st_filler|talent.chrono_flame&variable.azure_st_filler<2)|buff.leaping_flames.up
    2. Cast Azure Strike
      simcazure_strike

Read from ActionPriorityLists/default/evoker_augmentation.simc in simulationcraft/simc at 1860cd1d5763, the commit this engine build runs.