Cogspark

Cogspark Works · Rotation

Elemental Shaman

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. AoE (maybe)
  3. Single target (maybe)
Before the pull, done once before the fight starts (9 steps)

Before the pull9 lines

  1. Record your stats before the pull (sim bookkeeping)Snapshot raid buffed stats before combat begins and pre-potting is done.
    simcsnapshot_stats
  2. Cast Flametongue Weapon if you have Flametongue Weapon talented
    simcflametongue_weapon,if=talent.flametongue_weapon
  3. Cast Lightning Shield
    simclightning_shield
  4. Cast Thunderstrike Ward
    simcthunderstrike_ward
  5. Set trinket 1 buffs to true when the following holds, otherwise false
    any of these:
    • trinket 1 has an on-use effect that grants a stat buff
    • trinket 1 is Funhouse Lens
    simcvariable,name=trinket_1_buffs,value=(trinket.1.has_use_buff|trinket.1.is.funhouse_lens)
  6. Set trinket 2 buffs to true when the following holds, otherwise false
    any of these:
    • trinket 2 has an on-use effect that grants a stat buff
    • trinket 2 is Funhouse Lens
    simcvariable,name=trinket_2_buffs,value=(trinket.2.has_use_buff|trinket.2.is.funhouse_lens)
  7. Set trinket 1 special to true when the following holds, otherwise false
    any of these:
    • trinket 1 is Stormbound Emblem of Dazar
    • trinket 1 is Hex Lords Dooming Idol
    • trinket 1 is Font of Venomous Rage
    simcvariable,name=trinket_1_special,value=(trinket.1.is.stormbound_emblem_of_dazar|trinket.1.is.hex_lords_dooming_idol|trinket.1.is.font_of_venomous_rage)
  8. Set trinket 2 special to true when the following holds, otherwise false
    any of these:
    • trinket 2 is Stormbound Emblem of Dazar
    • trinket 2 is Hex Lords Dooming Idol
    • trinket 2 is Font of Venomous Rage
    simcvariable,name=trinket_2_special,value=(trinket.2.is.stormbound_emblem_of_dazar|trinket.2.is.hex_lords_dooming_idol|trinket.2.is.font_of_venomous_rage)
  9. Cast Stormkeeper
    simcstormkeeper

The main loop20 lines

  1. Cast Spiritwalker's Grace if the distance you still have to move is more than 6Only while movingEnable more movement.
    simcspiritwalkers_grace,moving=1,if=movement.distance>6
  2. Cast Wind ShearInterrupt of casts.
    simcwind_shear
  3. Cast Blood Fury
    simcblood_fury
  4. Cast Berserking
    simcberserking
  5. Cast Fireblood
    simcfireblood
  6. Cast Ancestral Call
    simcancestral_call
  7. Use Stormbound Emblem of Dazar if (Ascendance is off cooldown and (Stormkeeper has more than 15 s of cooldown left or Stormkeeper comes off cooldown within 2 s)) or the fight ends within 23 sSpecial buff trinkets
    simcuse_item,name=stormbound_emblem_of_dazar,if=cooldown.ascendance.ready&(cooldown.stormkeeper.remains>15|cooldown.stormkeeper.remains<2)|fight_remains<23
  8. Use Hex Lords Dooming Idol if (Ascendance is off cooldown and Stormkeeper has more than 15 s of cooldown left) or the fight ends within 23 sUsed without waiting for the global cooldown
    simcuse_item,name=hex_lords_dooming_idol,use_off_gcd=1,if=cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<23
  9. Use your trinket 1 if trinket 1 special is false and trinket 1 buffs is true and (Ascendance has more than trinket 1's cooldown minus 5 s of cooldown left or (Ascendance is off cooldown and (Stormkeeper isn't active or Chain Lightning would hit 2 or more enemies)) or the fight ends within 21 s)Used without waiting for the global cooldownNormal buff trinkets, mimic Ascendance activation conditions
    simcuse_item,slot=trinket1,use_off_gcd=1,if=!variable.trinket_1_special&variable.trinket_1_buffs&(cooldown.ascendance.remains>trinket.1.cooldown.duration-5|cooldown.ascendance.ready&(!buff.stormkeeper.up|spell_targets.chain_lightning>=2)|fight_remains<21)
  10. Use your trinket 2 if trinket 2 special is false and trinket 2 buffs is true and (Ascendance has more than trinket 2's cooldown minus 5 s of cooldown left or (Ascendance is off cooldown and (Stormkeeper isn't active or Chain Lightning would hit 2 or more enemies)) or the fight ends within 21 s)Used without waiting for the global cooldown
    simcuse_item,slot=trinket2,use_off_gcd=1,if=!variable.trinket_2_special&variable.trinket_2_buffs&(cooldown.ascendance.remains>trinket.2.cooldown.duration-5|cooldown.ascendance.ready&(!buff.stormkeeper.up|spell_targets.chain_lightning>=2)|fight_remains<21)
  11. Use the item in your main hand slotUsed without waiting for the global cooldownNormal weapons
    simcuse_item,slot=main_hand,use_off_gcd=1
  12. Use Font of Venomous Rage if (trinket 1 buffs is false and trinket 2 buffs is false and Ascendance isn't active) or (Ascendance isn't active and Ascendance is on cooldown) or the fight ends within 23 sSpecial dmg trinkets
    simcuse_item,name=font_of_venomous_rage,if=!variable.trinket_1_buffs&!variable.trinket_2_buffs&!buff.ascendance.up|!buff.ascendance.up&!cooldown.ascendance.ready|fight_remains<23
  13. Use your trinket 1 if trinket 1 special is false and trinket 1 buffs is false and (Ascendance has more than 20 s of cooldown left or trinket 2 has more than 20 s of cooldown left)Used without waiting for the global cooldownDmg trinkets
    simcuse_item,slot=trinket1,use_off_gcd=1,if=!variable.trinket_1_special&!variable.trinket_1_buffs&(cooldown.ascendance.remains>20|trinket.2.cooldown.remains>20)
  14. Use your trinket 2 if trinket 2 special is false and trinket 2 buffs is false and (Ascendance has more than 20 s of cooldown left or trinket 1 has more than 20 s of cooldown left)Used without waiting for the global cooldown
    simcuse_item,slot=trinket2,use_off_gcd=1,if=!variable.trinket_2_special&!variable.trinket_2_buffs&(cooldown.ascendance.remains>20|trinket.1.cooldown.remains>20)
  15. Cast Lightning Shield if Lightning Shield isn't active
    simclightning_shield,if=buff.lightning_shield.down
  16. Cast Nature's Swiftness
    simcnatures_swiftness
  17. Get Power Infusion from an allyUse Power Infusion on Cooldown.
    simcinvoke_external_buff,name=power_infusion
  18. Drink a potion if Bloodlust is active or Ascendance is off cooldown or the fight ends within 31 s
    simcpotion,if=buff.bloodlust.up|cooldown.ascendance.ready|fight_remains<31
  19. Is it true that Chain Lightning would hit 3 or more enemies?Not set

    If so, switch to AoE, and nothing below is checked

    simcrun_action_list,name=aoe,if=spell_targets.chain_lightning>=3

    AoE22 lines

    1. Cast Stormkeeper if you have the 4-piece set bonus (mid2) or Ascendance has more than 10 s of cooldown left or Ascendance comes off cooldown within one global cooldown or the fight ends within 20 s--- 3+ TARGET ROTATION --- Stormkeeper on CD (always with MID2 set), unless sub 10s hold for Asc or the fight is about to end.
      simcstormkeeper,if=set_bonus.mid2_4pc|cooldown.ascendance.remains>10|cooldown.ascendance.remains<gcd|fight_remains<20
    2. Cast Ancestral Swiftness
      simcancestral_swiftness
    3. Cast Flame Shock if Master of the Elements isn't active and ((Flame Shock is missing from the target or due for a refresh and Ascendance has more than 5 s of cooldown left) or (Fire Elemental is active and Fire Elemental has less than 2 s left, or isn't active)) and you have Master of the Elements talented and you have Inferno Arc talented and Chain Lightning would hit exactly 3 enemies[3t] Apply Flame shock on 3t for MotE and Inferno arc.
      simcflame_shock,if=!buff.master_of_the_elements.up&((dot.flame_shock.refreshable&cooldown.ascendance.remains>5)|(buff.fire_elemental.up&buff.fire_elemental.remains<2))&talent.master_of_the_elements&talent.inferno_arc&spell_targets.chain_lightning=3
    4. Cast Voltaic Blaze if Master of the Elements isn't active and ((Flame Shock is missing from the target or due for a refresh and Ascendance has more than 5 s of cooldown left) or (Fire Elemental is active and Fire Elemental has less than 2 s left, or isn't active) or you have Purging Flames talented)Apply Voltaic blaze for Inferno arc or Purging flames.
      simcvoltaic_blaze,if=!buff.master_of_the_elements.up&((dot.flame_shock.refreshable&cooldown.ascendance.remains>5)|(buff.fire_elemental.up&buff.fire_elemental.remains<2)|talent.purging_flames)
    5. Cast Chain Lightning if Stormkeeper is active and you are more than (the smaller of the number of enemies Chain Lightning would hit and 5) times (2 plus (the smaller of the number of enemies Chain Lightning would hit and 5) plus 2) Maelstrom below maximum and you have Call of the Ancestors talented and you have the 4-piece set bonus (mid2)Spend SK stacks asap if you wont overcap (with MID s2 set)
      simcchain_lightning,if=buff.stormkeeper.up&maelstrom.deficit>(spell_targets.chain_lightning>?5)*(2+(spell_targets.chain_lightning>?5)+2)&talent.call_of_the_ancestors&set_bonus.mid2_4pc
    6. Cast Ascendance if you have the 4-piece set bonus (mid2) or Stormkeeper has more than 15 s of cooldown left or the fight ends within 20 sAscendance on CD (always with MID2 set), unless SK can be sync'd with it.
      simcascendance,if=set_bonus.mid2_4pc|cooldown.stormkeeper.remains>15|fight_remains<20
    7. Cast Elemental Blast if Tempest has fewer than 2 stacks and exactly 0 of these hold: Elemental Blast: Critical Strike is active; Elemental Blast: Haste is active; Elemental Blast: Mastery is active and you have Tempest talentedtarget on the enemy with the lowest time left on Lightning Rod on the target[SB] Elemental Blast if no buffs or at 3t, Earthquake to spread Lightning Rod otherwise
      simcelemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.tempest.stack<2&(buff.elemental_blast_critical_strike.up+buff.elemental_blast_haste.up+buff.elemental_blast_mastery.up=0)&talent.tempest
    8. Cast Earthquake if Tempest has fewer than 2 stacks and lightning_rod is less than the number of enemies and the number of enemies Chain Lightning would hit is at least 3 plus (1 if you have Elemental Blast talented, else 0) and (more than 0 of these hold: Elemental Blast: Critical Strike is active; Elemental Blast: Haste is active; Elemental Blast: Mastery is active or you don't have Elemental Blast talented) and you have Tempest talented
      simcearthquake,if=buff.tempest.stack<2&lightning_rod<active_enemies&(spell_targets.chain_lightning>=3+talent.elemental_blast)&(buff.elemental_blast_critical_strike.up+buff.elemental_blast_haste.up+buff.elemental_blast_mastery.up>0|!talent.elemental_blast)&talent.tempest
    9. Cast Earthquake if Call of the Ancestors is active or (the number of enemies Chain Lightning would hit is at least 3 plus (2 if you have Elemental Blast talented, else 0) and you have Call of the Ancestors talented)[FS] EQ with ancestors, EB (3 and 4t) - without
      simcearthquake,if=buff.call_of_the_ancestors.up|(spell_targets.chain_lightning>=3+2*talent.elemental_blast)&talent.call_of_the_ancestors
    10. Cast Elemental Blast if Tempest has fewer than 2 stacks and the number of enemies Chain Lightning would hit is at most 3 plus (1 if you have Call of the Ancestors talented, else 0) and Call of the Ancestors isn't activetarget on the enemy with the lowest time left on Lightning Rod on the target
      simcelemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.tempest.stack<2&(spell_targets.chain_lightning<=3+talent.call_of_the_ancestors)&!buff.call_of_the_ancestors.up
    11. Cast Lava Burst if Purging Flames is active and (Lava Surge is active or Voltaic Blaze comes off cooldown within 2 s)Spend Purging flames.
      simclava_burst,if=buff.purging_flames.up&(buff.lava_surge.up|cooldown.voltaic_blaze.remains<2)
    12. Cast Lava Burst if (Tempest is active or (you don't have Purging Flames talented and you have Call of the Ancestors talented)) and Lava Surge is active and you have Master of the Elements talented and Chain Lightning would hit exactly 3 enemies[3t] Spend Lava Surge procs to buff Tempest with MotE OR anything with Farseer (without PF specced).
      simclava_burst,if=(buff.tempest.up|!talent.purging_flames&talent.call_of_the_ancestors)&buff.lava_surge.up&talent.master_of_the_elements&spell_targets.chain_lightning=3
    13. Cast Tempest if Master of the Elements is activetarget on the enemy with the lowest time left on Lightning Rod on the target[3t] Tempest if you have MotE.
      simctempest,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up
    14. Cast Tempest if Stormkeeper has fewer than 4 stacks and Tempest has exactly 2 stackstarget on the enemy with the lowest time left on Lightning Rod on the target
      simctempest,target_if=min:debuff.lightning_rod.remains,if=buff.stormkeeper.stack<4&buff.tempest.stack=2
    15. Cast Chain Lightning if Stormkeeper is active and you are more than (the smaller of the number of enemies Chain Lightning would hit and 5) times (2 plus (the smaller of the number of enemies Chain Lightning would hit and 5) plus 2) Maelstrom below maximum
      simcchain_lightning,if=buff.stormkeeper.up&maelstrom.deficit>(spell_targets.chain_lightning>?5)*(2+(spell_targets.chain_lightning>?5)+2)
    16. Cast Earthquake if you don't have Elemental Blast talented and you are less than 15 plus (((1 if Stormkeeper is active, else 0) times (the smaller of the number of enemies Chain Lightning would hit and 5)) times (2 plus (the smaller of the number of enemies Chain Lightning would hit and 5))) Maelstrom below maximum
      simcearthquake,if=!talent.elemental_blast&maelstrom.deficit<15+(buff.stormkeeper.up*(spell_targets.chain_lightning>?5)*(2+(spell_targets.chain_lightning>?5)))
    17. Cast Elemental Blast if you have Tempest talented
      simcelemental_blast,if=talent.tempest
    18. Cast Tempesttarget on the enemy with the lowest time left on Lightning Rod on the target
      simctempest,target_if=min:debuff.lightning_rod.remains
    19. Cast Chain LightningFiller spell. Always available. Always the bottom line.
      simcchain_lightning
    20. Cast Flame ShockOnly while moving
      simcflame_shock,moving=1
    21. Cast Voltaic BlazeOnly while moving
      simcvoltaic_blaze,moving=1
    22. Cast Frost ShockOnly while moving
      simcfrost_shock,moving=1
  20. switch to Single target, and nothing below is checked

    simcrun_action_list,name=single_target

    Single target31 lines

    1. Cast Stormkeeper if (Stormkeeper isn't active and Tempest isn't active and you have the 4-piece set bonus (mid2)) or (you don't have the 4-piece set bonus (mid2) and (Ascendance has more than 10 s of cooldown left or Ascendance comes off cooldown within one global cooldown or the fight ends within 20 s))--- 1 and 2 TARGET ROTATION --- Stormkeeper on CD (proc all 4p first if using MID2 4pc), unless sub 10s hold for Asc or the fight is about to end.
      simcstormkeeper,if=!buff.stormkeeper.up&!buff.tempest.up&set_bonus.mid2_4pc|!set_bonus.mid2_4pc&(cooldown.ascendance.remains>10|cooldown.ascendance.remains<gcd|fight_remains<20)
    2. Cast Ancestral Swiftness
      simcancestral_swiftness
    3. Cast Lightning Bolt if you have the 4-piece set bonus (mid2) and Stormkeeper is active and Ascendance comes off cooldown within 2 global cooldowns and (Chain Lightning would hit exactly 1 enemy or you have Tempest talented)Prespend SK charges before going into Ascendance - Farseer only in 1t, SB in both 1t and 2t
      simclightning_bolt,if=set_bonus.mid2_4pc&buff.stormkeeper.up&cooldown.ascendance.remains<2*gcd&(spell_targets.chain_lightning=1|talent.tempest)
    4. Cast Flame Shock if Master of the Elements isn't active and Flame Shock is missing from the target or due for a refresh and Ascendance has more than 5 s of cooldown leftMaintain Flame shock, minor gain to refresh it when FE is about to fade on up to 2 targets.
      simcflame_shock,if=!buff.master_of_the_elements.up&dot.flame_shock.refreshable&cooldown.ascendance.remains>5
    5. Cast Flame Shock if Master of the Elements isn't active and Ascendance isn't active and Fire Elemental is active and Fire Elemental has less than (6 s times the number of enemies) minus 4 s left, or isn't activetarget on the enemy with the lowest time left on Flame Shock
      simcflame_shock,target_if=min:dot.flame_shock.remains,if=!buff.master_of_the_elements.up&!buff.ascendance.up&buff.fire_elemental.up&buff.fire_elemental.remains<6*active_enemies-4
    6. Cast Voltaic Blaze if Master of the Elements isn't active and ((Flame Shock is missing from the target or due for a refresh and Ascendance has more than 5 s of cooldown left) or (you have Purging Flames talented and Chain Lightning would hit exactly 2 enemies))Voltaic Blaze to maintain Flame shock and on cooldown to proc Purging Flames.
      simcvoltaic_blaze,if=!buff.master_of_the_elements.up&(dot.flame_shock.refreshable&cooldown.ascendance.remains>5|talent.purging_flames&spell_targets.chain_lightning=2)
    7. Cast Ascendance if you have the 4-piece set bonus (mid2) or Stormkeeper has more than 15 s of cooldown left or the fight ends within 20 sAscendance on CD (always with MID2 set), unless SK can be sync'd with it.
      simcascendance,if=set_bonus.mid2_4pc|cooldown.stormkeeper.remains>15|fight_remains<20
    8. Cast Earthquake if Flowing Elements is active and Overcharge Tier is active and Call of the Ancestors has 3 or more stacks and Chain Lightning would hit exactly 2 enemiesConsume tier procs if you gona proc new one with next builder.
      simcearthquake,if=buff.flowing_elements.up&buff.overcharge_tier.up&buff.call_of_the_ancestors.stack>=3&spell_targets.chain_lightning=2
    9. Cast Elemental Blast if Flowing Elements is active and Overcharge Tier is active
      simcelemental_blast,if=buff.flowing_elements.up&buff.overcharge_tier.up
    10. Cast Earthquake if Flowing Elements is active and Overcharge Tier is active and Call of the Ancestors is active and Chain Lightning would hit exactly 2 enemies
      simcearthquake,if=buff.flowing_elements.up&buff.overcharge_tier.up&buff.call_of_the_ancestors.up&spell_targets.chain_lightning=2
    11. Cast Earth Shock if Flowing Elements is active and Overcharge Tier is active
      simcearth_shock,if=buff.flowing_elements.up&buff.overcharge_tier.up
    12. Cast Lava Burst if you have Master of the Elements talented and Master of the Elements isn't active and you are more than 15 Maelstrom below maximum and Lava Burst has more than 1.8 charges and (1 if (Storm Elemental isn't active or Wind Gust has exactly 4 stacks), else 0) plus (1 if you have Call of the Ancestors talented, else 0) is at least the number of enemies Chain Lightning would hitLava Burst to proc MotE if you are about to reach 2 charges and (1 target OR wind gust stacked for Farseer) or (1 target AND wind gust stacked for SB).
      simclava_burst,if=talent.master_of_the_elements&!buff.master_of_the_elements.up&maelstrom.deficit>15&cooldown.lava_burst.charges_fractional>1.8&((!buff.storm_elemental.up|buff.wind_gust.stack=4)+talent.call_of_the_ancestors>=spell_targets.chain_lightning)
    13. Cast Lava Burst if you have Master of the Elements talented and Master of the Elements isn't active and you are more than 15 Maelstrom below maximum and your Maelstrom is more than 52 minus ((5 if you have Eye of the Storm talented, else 0) times (1 plus (1 if you have Elemental Blast talented, else 0))) plus (30 if you have Elemental Blast talented, else 0)Lava Burst to proc MotE if you have enough maelstrom for a spender.
      simclava_burst,if=talent.master_of_the_elements&!buff.master_of_the_elements.up&maelstrom.deficit>15&(maelstrom>52-5*talent.eye_of_the_storm*(1+talent.elemental_blast)+30*talent.elemental_blast)
    14. Cast Lava Burst if you have Master of the Elements talented and Master of the Elements isn't active and you are more than 15 Maelstrom below maximum and your Maelstrom is more than 52 minus (5 if you have Eye of the Storm talented, else 0) and Call of the Ancestors has 3 or more stacks and Chain Lightning would hit exactly 2 enemies
      simclava_burst,if=talent.master_of_the_elements&!buff.master_of_the_elements.up&maelstrom.deficit>15&(maelstrom>52-5*talent.eye_of_the_storm)&buff.call_of_the_ancestors.stack>=3&spell_targets.chain_lightning=2
    15. Cast Lava Burst if you don't have Master of the Elements talented and you are more than 15 Maelstrom below maximum and (Storm Elemental isn't active or Wind Gust has exactly 4 stacks) and (((Lava Burst has more than 1.8 charges or Call of the Ancestors isn't active) and (you have Molten Wrath talented or you have Purging Flames talented)) or Lava Surge is active)Lava Burst without MotE to prevent overcap (with any empowering talents) or with surge proc.
      simclava_burst,if=!talent.master_of_the_elements&maelstrom.deficit>15&(!buff.storm_elemental.up|buff.wind_gust.stack=4)&((cooldown.lava_burst.charges_fractional>1.8|!buff.call_of_the_ancestors.up)&(talent.molten_wrath|talent.purging_flames)|buff.lava_surge.up)
    16. Cast Lava Burst if Master of the Elements isn't active and you are more than 15 Maelstrom below maximum and Flowing Elements is active
      simclava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.flowing_elements.up
    17. Cast Lava Burst if Master of the Elements isn't active and you are more than 15 Maelstrom below maximum and Purging Flames is active and Voltaic Blaze comes off cooldown within 2 s and Flame Shock is on exactly 2 enemies
      simclava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.purging_flames.up&cooldown.voltaic_blaze.remains<2&active_dot.flame_shock=2
    18. Cast Tempest if Master of the Elements is active or you don't have Master of the Elements talented[SB] Tempest and Lightning Bolt with SK if you have MotE.
      simctempest,if=buff.master_of_the_elements.up|!talent.master_of_the_elements
    19. Cast Lightning Bolt if Stormkeeper is active and Master of the Elements is active and you have Tempest talented
      simclightning_bolt,if=buff.stormkeeper.up&buff.master_of_the_elements.up&talent.tempest
    20. Cast Earthquake if Call of the Ancestors has 3 or more stacks and (Master of the Elements is active or you don't have Master of the Elements talented or you are less than 15 Maelstrom below maximum) and Chain Lightning would hit exactly 2 enemies
      simcearthquake,if=buff.call_of_the_ancestors.stack>=3&(buff.master_of_the_elements.up|!talent.master_of_the_elements|maelstrom.deficit<15)&spell_targets.chain_lightning=2
    21. Cast Elemental Blast if Master of the Elements is active or you are less than 15 Maelstrom below maximumtarget on the enemy with the lowest time left on Lightning Rod on the target
      simcelemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15
    22. Cast Earthquake if (Master of the Elements is active or you don't have Master of the Elements talented or you are less than 15 Maelstrom below maximum) and Call of the Ancestors is active and you don't have Elemental Blast talented and Chain Lightning would hit exactly 2 enemies
      simcearthquake,if=(buff.master_of_the_elements.up|!talent.master_of_the_elements|maelstrom.deficit<15)&buff.call_of_the_ancestors.up&!talent.elemental_blast&spell_targets.chain_lightning=2
    23. Cast Earth Shock if Master of the Elements is active or you are less than 15 Maelstrom below maximumtarget on the enemy with the lowest time left on Lightning Rod on the target
      simcearth_shock,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15
    24. Cast Flame Shock if Master of the Elements is active and Flame Shock is missing from the target or due for a refreshtarget on the enemy with the lowest time left on Flame ShockConsume spare MotE to buff Flame Shock, mostly on off-targets.
      simcflame_shock,target_if=min:dot.flame_shock.remains,if=buff.master_of_the_elements.up&dot.flame_shock.refreshable
    25. Cast Voltaic Blaze if you have Crackling Fury talented and Ascendance isn't active
      simcvoltaic_blaze,if=talent.crackling_fury&!buff.ascendance.up
    26. Cast Tempest
      simctempest
    27. Cast Chain Lightning if Chain Lightning would hit exactly 2 enemiesFiller spell. Always available. Always the bottom line.
      simcchain_lightning,if=spell_targets.chain_lightning=2
    28. Cast Lightning Bolt
      simclightning_bolt
    29. Cast Flame ShockOnly while moving
      simcflame_shock,moving=1
    30. Cast Voltaic BlazeOnly while moving
      simcvoltaic_blaze,moving=1
    31. Cast Frost ShockOnly while moving
      simcfrost_shock,moving=1

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