Advertisement
Hekili

Untitled

Jul 22nd, 2019
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 14.85 KB | None | 0 0
  1. # Elemental Shaman
  2. # https://github.com/simulationcraft/simc/
  3. # July 21, 2019 - 21:17
  4.  
  5. # Changes:
  6. # - Use X_elemental.up rather than checking cooldowns to see if elementals are active.
  7. # - Disabled Earth Elemental entries.
  8. # - Remove Ascendance time/BL check.
  9. # - Add Eye of the Storm / Meteor.
  10.  
  11. # Executed before combat begins. Accepts non-harmful actions only.
  12. # actions.precombat=flask
  13. # actions.precombat+=/food
  14. # actions.precombat+=/augmentation
  15. # Snapshot raid buffed stats before combat begins and pre-potting is done.
  16. # actions.precombat+=/snapshot_stats
  17. actions.precombat+=/totem_mastery
  18. # actions.precombat+=/earth_elemental,if=!talent.primal_elementalist.enabled
  19.  
  20. # Use Stormkeeper precombat unless some adds will spawn soon.
  21. actions.precombat+=/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)
  22.  
  23. actions.precombat+=/fire_elemental,if=!talent.storm_elemental.enabled
  24. actions.precombat+=/storm_elemental,if=talent.storm_elemental.enabled
  25. actions.precombat+=/potion
  26. actions.precombat+=/elemental_blast,if=talent.elemental_blast.enabled
  27. actions.precombat+=/lava_burst,if=!talent.elemental_blast.enabled&spell_targets.chain_lightning<3
  28. actions.precombat+=/chain_lightning,if=spell_targets.chain_lightning>2
  29.  
  30. # Executed every time the actor is available.
  31. # Cast Bloodlust manually if the Azerite Trait Ancestral Resonance is present.
  32. actions=bloodlust,if=azerite.ancestral_resonance.enabled
  33. # In-combat potion is preferentially linked to your Elemental, unless combat will end shortly
  34. actions+=/potion,if=expected_combat_length-time<30|fire_elemental.up|storm_elemental.up
  35. # Interrupt of casts.
  36. actions+=/wind_shear
  37. actions+=/totem_mastery,if=talent.totem_mastery.enabled&buff.resonance_totem.remains<2
  38. actions+=/use_items
  39. actions+=/fire_elemental,if=!talent.storm_elemental.enabled
  40. actions+=/storm_elemental,if=talent.storm_elemental.enabled&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)&(!talent.ascendance.enabled|!cooldown.ascendance.up)
  41. # actions+=/earth_elemental,if=!talent.primal_elementalist.enabled|talent.primal_elementalist.enabled&(fire_elemental.down&!talent.storm_elemental.enabled|storm_elemental.down&talent.storm_elemental.enabled)
  42. actions+=/concentrated_flame
  43. actions+=/blood_of_the_enemy
  44. actions+=/guardian_of_azeroth
  45. actions+=/focused_azerite_beam
  46. actions+=/purifying_blast
  47. actions+=/the_unbound_force
  48. actions+=/memory_of_lucid_dreams
  49. actions+=/ripple_in_space
  50. actions+=/worldvein_resonance
  51. actions+=/blood_fury,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50
  52. actions+=/berserking,if=!talent.ascendance.enabled|buff.ascendance.up
  53. actions+=/fireblood,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50
  54. actions+=/ancestral_call,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50
  55. actions+=/eye_of_the_storm,if=storm_elemental.up&buff.call_lightning.remains>=8
  56. actions+=/meteor
  57. actions+=/run_action_list,name=aoe,if=active_enemies>2&(spell_targets.chain_lightning>2|spell_targets.lava_beam>2)
  58. actions+=/run_action_list,name=single_target
  59.  
  60. # Multi target action priority list
  61. actions.aoe=stormkeeper,if=talent.stormkeeper.enabled
  62. # Spread Flame Shock in <= 4 target fights, but not during SE uptime,unless you're fighting 3 targets and have less than 14 Wind Gust stacks.
  63. actions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&(spell_targets.chain_lightning<(5-!talent.totem_mastery.enabled)|!talent.storm_elemental.enabled&(fire_elemental.remains>(14*spell_haste)|cooldown.fire_elemental.remains<(24-14*spell_haste)))&(!talent.storm_elemental.enabled|storm_elemental.down|spell_targets.chain_lightning=3&buff.wind_gust.stack<14)
  64. actions.aoe+=/ascendance,if=talent.ascendance.enabled&(talent.storm_elemental.enabled&storm_elemental.down&cooldown.storm_elemental.remains>15|!talent.storm_elemental.enabled)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)
  65. actions.aoe+=/liquid_magma_totem,if=talent.liquid_magma_totem.enabled
  66.  
  67. # Try to game Earthquake with Master of the Elements buff when fighting 3 targets. Don't overcap Maelstrom!
  68. actions.aoe+=/earthquake,if=!talent.master_of_the_elements.enabled|buff.stormkeeper.up|maelstrom>=(100-4*spell_targets.chain_lightning)|buff.master_of_the_elements.up|(buff.lava_surge.down&spell_targets.chain_lightning>3)
  69.  
  70. # Make sure you don't lose a Stormkeeper.
  71. actions.aoe+=/chain_lightning,if=buff.stormkeeper.remains<3*gcd*buff.stormkeeper.stack
  72.  
  73. # Only cast Lava Burst on three targets if it is an instant and Storm Elemental is NOT active.
  74. actions.aoe+=/lava_burst,if=buff.lava_surge.up&(!talent.storm_elemental.enabled|storm_elemental.down)&dot.flame_shock.ticking
  75. actions.aoe+=/icefury,if=spell_targets.chain_lightning<4&!buff.ascendance.up
  76. actions.aoe+=/frost_shock,if=spell_targets.chain_lightning<4&buff.icefury.up&!buff.ascendance.up
  77.  
  78. # Use Elemental Blast against up to 3 targets as long as Storm Elemental is not active.
  79. actions.aoe+=/elemental_blast,if=talent.elemental_blast.enabled&spell_targets.chain_lightning<4&(!talent.storm_elemental.enabled|storm_elemental.down)
  80. actions.aoe+=/lava_beam,if=talent.ascendance.enabled
  81. actions.aoe+=/chain_lightning
  82. actions.aoe+=/lava_burst,moving=1,if=talent.ascendance.enabled
  83. actions.aoe+=/flame_shock,moving=1,cycle_targets=1,if=refreshable
  84. actions.aoe+=/frost_shock,moving=1
  85.  
  86. # Single Target Action Priority List
  87. # Ensure FS is active unless you have 14 or more stacks of Wind Gust from Storm Elemental. (Edge case: upcoming Asc but active SE; don't )
  88. actions.single_target=flame_shock,cycle_targets=1,if=(!ticking|talent.storm_elemental.enabled&cooldown.storm_elemental.remains<2*gcd|dot.flame_shock.remains<=gcd|talent.ascendance.enabled&dot.flame_shock.remains<(cooldown.ascendance.remains+buff.ascendance.duration)&cooldown.ascendance.remains<4&(!talent.storm_elemental.enabled|talent.storm_elemental.enabled&storm_elemental.down))&(buff.wind_gust.stack<14|azerite.igneous_potential.rank>=2|buff.lava_surge.up|!buff.bloodlust.up)&!buff.surge_of_power.up
  89.  
  90. # Use Ascendance after you've spent all Lava Burst charges and only if neither Storm Elemental nor Icefury are currently active.
  91. actions.single_target+=/ascendance,if=talent.ascendance.enabled&cooldown.lava_burst.remains>0&(storm_elemental.down|!talent.storm_elemental.enabled)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)
  92.  
  93. # Don't use Elemental Blast if you could cast a Master of the Elements empowered Earth Shock instead. Don't cast Elemental Blast during Storm Elemental unless you have 3x Natural Harmony. But in this case stop using Elemental Blast once you reach 14 stacks of Wind Gust.
  94. actions.single_target+=/elemental_blast,if=talent.elemental_blast.enabled&(talent.master_of_the_elements.enabled&buff.master_of_the_elements.up&maelstrom<60|!talent.master_of_the_elements.enabled)&(!(storm_elemental.up&talent.storm_elemental.enabled)|azerite.natural_harmony.rank=3&buff.wind_gust.stack<14)
  95.  
  96. # Keep SK for large or soon add waves. Unless you have Surge of Power, in which case you want to double buff Lightning Bolt by pooling Maelstrom beforehand. Example sequence: 100MS, ES, SK, LB, LvB, ES, LB
  97. actions.single_target+=/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)&(!talent.surge_of_power.enabled|buff.surge_of_power.up|maelstrom>=44)
  98.  
  99. actions.single_target+=/liquid_magma_totem,if=talent.liquid_magma_totem.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)
  100.  
  101. # Combine Stormkeeper with Master of the Elements or Surge of Power unless you have the Lava Shock trait and multiple stacks.
  102. actions.single_target+=/lightning_bolt,if=buff.stormkeeper.up&spell_targets.chain_lightning<2&(azerite.lava_shock.rank*buff.lava_shock.stack)<26&(buff.master_of_the_elements.up&!talent.surge_of_power.enabled|buff.surge_of_power.up)
  103.  
  104. # Use Earthquake versus 2 targets, unless you have Lava Shock. Use Earthquake versus 1 target if you have Tectonic Thunder 3 times and NO Surge of Power enabled and NO Lava Shock.
  105. actions.single_target+=/earthquake,if=(spell_targets.chain_lightning>1|azerite.tectonic_thunder.rank>=3&!talent.surge_of_power.enabled&azerite.lava_shock.rank<1)&azerite.lava_shock.rank*buff.lava_shock.stack<(36+3*azerite.tectonic_thunder.rank*spell_targets.chain_lightning)&(!talent.surge_of_power.enabled|!dot.flame_shock.refreshable|storm_elemental.up)&(!talent.master_of_the_elements.enabled|buff.master_of_the_elements.up|cooldown.lava_burst.remains>0&maelstrom>=92+30*talent.call_the_thunder.enabled)
  106.  
  107. # Cast Earth Shock with Master of the Elements talent but no active Surge of Power buff, and active Stormkeeper buff and Lava Burst coming off CD within the next GCD, and either active Master of the Elements buff, or no available Lava Burst while near MS cap, or single target and multiple Lava Shock traits and many stacks.
  108. actions.single_target+=/earth_shock,if=!buff.surge_of_power.up&talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up|cooldown.lava_burst.remains>0&maelstrom>=92+30*talent.call_the_thunder.enabled|spell_targets.chain_lightning<2&(azerite.lava_shock.rank*buff.lava_shock.stack<26)&buff.stormkeeper.up&cooldown.lava_burst.remains<=gcd)
  109.  
  110. # You know what? I had some short explanation here once. But then the condition grew, and I had to split the one Earth Shock line into four...so you have to deal with this abomination now: Cast Earth Shock without Master of the Elements talent, and without having triple Igneous Potential and active Ascendance, and active Stormkeeper buff or near MS cap, or Storm Elemental is inactive, and we can't expect to get an additional use of Storm Elemental in the remaining fight from Surge of Power.
  111. actions.single_target+=/earth_shock,if=!talent.master_of_the_elements.enabled&!(azerite.igneous_potential.rank>2&buff.ascendance.up)&(buff.stormkeeper.up|maelstrom>=90+30*talent.call_the_thunder.enabled|!(storm_elemental.up&talent.storm_elemental.enabled)&expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)>=30*(1+(azerite.echo_of_the_elementals.rank>=2)))
  112.  
  113. # Use Earth Shock if Surge of Power is talented, but neither it nor a DPS Elemental is active at the moment, and Lava Burst is ready or will be ready within the next GCD.
  114. actions.single_target+=/earth_shock,if=talent.surge_of_power.enabled&!buff.surge_of_power.up&cooldown.lava_burst.remains<=gcd&(!talent.storm_elemental.enabled&!(fire_elemental.up)|talent.storm_elemental.enabled&!(storm_elemental.up))
  115. actions.single_target+=/lightning_lasso
  116.  
  117. # Spam Lightning Bolts during Storm Elemental duration, if you don't have Igneous Potential or have it only once, and don't use Lightning Bolt during Bloodlust if you have a Lava Surge Proc.
  118. actions.single_target+=/lightning_bolt,if=storm_elemental.up&talent.storm_elemental.enabled&(azerite.igneous_potential.rank<2|!buff.lava_surge.up&buff.bloodlust.up)
  119.  
  120. # Cast Lightning Bolt regardless of the previous condition if you'd lose a Stormkeeper stack or have Stormkeeper and Master of the Elements active.
  121. actions.single_target+=/lightning_bolt,if=(buff.stormkeeper.remains<1.1*gcd*buff.stormkeeper.stack|buff.stormkeeper.up&buff.master_of_the_elements.up)
  122.  
  123. # Use Frost Shock with Icefury and Master of the Elements.
  124. actions.single_target+=/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up
  125.  
  126. actions.single_target+=/lava_burst,if=buff.ascendance.up
  127.  
  128. # Utilize Surge of Power to spread Flame Shock if multiple enemies are present.
  129. actions.single_target+=/flame_shock,cycle_targets=1,if=refreshable&active_enemies>1&buff.surge_of_power.up
  130.  
  131. # Use Lava Burst with Surge of Power if the last potential usage of Storm Elemental hasn't a full duration OR if you could get another usage of the DPS Elemental if the remaining fight was 16% longer.
  132. actions.single_target+=/lava_burst,if=talent.storm_elemental.enabled&cooldown_react&buff.surge_of_power.up&(expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)<30*(1+(azerite.echo_of_the_elementals.rank>=2))|(1.16*(expected_combat_length-time)-cooldown.storm_elemental.remains-150*floor((1.16*(expected_combat_length-time)-cooldown.storm_elemental.remains)%150))<(expected_combat_length-time-cooldown.storm_elemental.remains-150*floor((expected_combat_length-time-cooldown.storm_elemental.remains)%150)))
  133.  
  134. # Use Lava Burst with Surge of Power if the last potential usage of Fire Elemental hasn't a full duration OR if you could get another usage of the DPS Elemental if the remaining fight was 16% longer.
  135. actions.single_target+=/lava_burst,if=!talent.storm_elemental.enabled&cooldown_react&buff.surge_of_power.up&(expected_combat_length-time-cooldown.fire_elemental.remains-150*floor((expected_combat_length-time-cooldown.fire_elemental.remains)%150)<30*(1+(azerite.echo_of_the_elementals.rank>=2))|(1.16*(expected_combat_length-time)-cooldown.fire_elemental.remains-150*floor((1.16*(expected_combat_length-time)-cooldown.fire_elemental.remains)%150))<(expected_combat_length-time-cooldown.fire_elemental.remains-150*floor((expected_combat_length-time-cooldown.fire_elemental.remains)%150)))
  136.  
  137. actions.single_target+=/lightning_bolt,if=buff.surge_of_power.up
  138. actions.single_target+=/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled
  139.  
  140. # Slightly game Icefury buff to hopefully buff some empowered Frost Shocks with Master of the Elements.
  141. actions.single_target+=/icefury,if=talent.icefury.enabled&!(maelstrom>75&cooldown.lava_burst.remains<=0)&(!talent.storm_elemental.enabled|storm_elemental.down)
  142.  
  143. actions.single_target+=/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled
  144.  
  145. # Slightly delay using Icefury empowered Frost Shocks to empower them with Master of the Elements too.
  146. actions.single_target+=/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<1.1*gcd*buff.icefury.stack
  147.  
  148. actions.single_target+=/lava_burst,if=cooldown_react
  149.  
  150. # Don't accidentally use Surge of Power with Flame Shock during single target.
  151. actions.single_target+=/flame_shock,cycle_targets=1,if=refreshable&!buff.surge_of_power.up
  152. actions.single_target+=/totem_mastery,if=talent.totem_mastery.enabled&(buff.resonance_totem.remains<6|(buff.resonance_totem.remains<(buff.ascendance.duration+cooldown.ascendance.remains)&cooldown.ascendance.remains<15))
  153.  
  154. actions.single_target+=/frost_shock,if=talent.icefury.enabled&buff.icefury.up&(buff.icefury.remains<gcd*4*buff.icefury.stack|buff.stormkeeper.up|!talent.master_of_the_elements.enabled)
  155. actions.single_target+=/chain_lightning,if=buff.tectonic_thunder.up&!buff.stormkeeper.up&spell_targets.chain_lightning>1
  156. actions.single_target+=/lightning_bolt
  157. actions.single_target+=/flame_shock,moving=1,cycle_targets=1,if=refreshable
  158. actions.single_target+=/flame_shock,moving=1,if=movement.distance>6
  159. # Frost Shock is our movement filler.
  160. actions.single_target+=/frost_shock,moving=1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement