Muttonman

Ele Shaman APL AOE 20210324

Mar 24th, 2021 (edited)
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 17.10 KB | None | 0 0
  1. # Custom APL
  2.  
  3. # Executed before combat begins. Accepts non-harmful actions only.
  4. actions.precombat="flask"
  5. actions.precombat+="/food"
  6. actions.precombat+="/augmentation"
  7. actions.precombat+="/earth_elemental,if=!talent.primal_elementalist.enabled"
  8. # Use Stormkeeper precombat unless some adds will spawn soon.
  9. actions.precombat+="/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)"
  10. # Precasts Fire Elemental -> Elemental Blast
  11. actions.precombat+="/fire_elemental"
  12. actions.precombat+="/elemental_blast,if=talent.elemental_blast.enabled"
  13. actions.precombat+="/lava_burst,if=!talent.elemental_blast.enabled"
  14. # Snapshot raid buffed stats before combat begins and pre-potting is done.
  15. actions.precombat+="/snapshot_stats"
  16. actions.precombat+="/potion"
  17.  
  18. # Executed every time the actor is available.
  19. actions="spiritwalkers_grace,moving=1,if=movement.distance>6"
  20. # Interrupt of casts.
  21. actions+="/wind_shear"
  22. actions+="/potion"
  23. actions+="/use_items"
  24. actions+="/storm_elemental"
  25. actions+="/primordial_wave,target_if=min:dot.flame_shock.remains,cycle_targets=1,if=!buff.primordial_wave.up&!pet.storm_elemental.active&(spell_targets.chain_lightning<5|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped)"
  26. actions+="/flame_shock,if=!ticking&!pet.storm_elemental.active&(spell_targets.chain_lightning<5|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped)"
  27. actions+="/fire_elemental"
  28. actions+="/blood_fury,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  29. actions+="/berserking,if=!talent.ascendance.enabled|buff.ascendance.up"
  30. actions+="/fireblood,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  31. actions+="/ancestral_call,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  32. actions+="/bag_of_tricks,if=!talent.ascendance.enabled|!buff.ascendance.up"
  33. actions+="/vesper_totem,if=covenant.kyrian"
  34. actions+="/fae_transfusion,if=covenant.night_fae&(!talent.master_of_the_elements.enabled|buff.master_of_the_elements.up)"
  35. actions+="/run_action_list,name=aoe,if=active_enemies>2&(spell_targets.chain_lightning>2|spell_targets.lava_beam>2)"
  36. actions+="/run_action_list,name=wlr_single_target,if=!talent.storm_elemental.enabled&active_enemies<2&runeforge.windspeakers_lava_resurgence.equipped"
  37. actions+="/run_action_list,name=single_target,if=!talent.storm_elemental.enabled&active_enemies<=2"
  38. actions+="/run_action_list,name=se_single_target,if=talent.storm_elemental.enabled&active_enemies<=2"
  39.  
  40. # 3+ Enemy
  41. actions.aoe="earthquake,if=buff.echoing_shock.up"
  42. actions.aoe+="/chain_harvest"
  43. actions.aoe+="/stormkeeper,if=talent.stormkeeper.enabled"
  44. actions.aoe+="/flame_shock,if=(active_dot.flame_shock<3&active_enemies<=3|active_dot.flame_shock<1&active_enemies>=4&!pet.storm_elemental.active)|(runeforge.skybreakers_fiery_demise.equipped&!pet.storm_elemental.active),target_if=refreshable"
  45. #actions.aoe+="/flame_shock,if=cooldown.primordial_wave.remains<12+2.5*gcd&!pet.storm_elemental.active,target_if=refreshable"
  46. actions.aoe+="/flame_shock,if=!active_dot.flame_shock&!pet.storm_elemental.active"
  47. actions.aoe+="/echoing_shock,if=talent.echoing_shock.enabled&maelstrom>=60"
  48. actions.aoe+="/ascendance,if=talent.ascendance.enabled&(!pet.storm_elemental.active)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)"
  49. actions.aoe+="/liquid_magma_totem,if=talent.liquid_magma_totem.enabled"
  50. actions.aoe+="/earth_shock,if=runeforge.echoes_of_great_sundering.equipped&!buff.echoes_of_great_sundering.up"
  51. actions.aoe+="/earth_elemental,if=runeforge.deeptremor_stone.equipped&(!talent.primal_elementalist.enabled|(!pet.storm_elemental.active&!pet.fire_elemental.active))"
  52. # Lava Burst Below 3 targets
  53. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=spell_targets.chain_lightning<4"
  54. # Lava Burst with PWave up and a Lava Surge
  55. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=buff.lava_surge.up&buff.primordial_wave.up"
  56. # Lava Burst with 50+ mael and no MotE buff and the next cast would be EQ
  57. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=talent.master_of_the_elements.enabled&maelstrom>=50&!buff.master_of_the_elements.up&(!runeforge.echoes_of_great_sundering.equipped|buff.echoes_of_great_sundering.up)"
  58. # Lava Burst to MoTE EQ
  59. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=(talent.master_of_the_elements.enabled&!buff.master_of_the_elements.up&maelstrom>=50&(!runeforge.echoes_of_great_sundering.equipped|buff.echoes_of_great_sundering.up))"
  60. # Try to game Earthquake with Master of the Elements buff when fighting 3 targets. Don't overcap Maelstrom!
  61. 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|spell_targets.chain_lightning>=2"
  62. # Make sure you don't lose a Stormkeeper buff.
  63. actions.aoe+="/chain_lightning,if=buff.stormkeeper.remains<3*gcd*buff.stormkeeper.stack"
  64. # Only cast Lava Burst on three targets if it is an instant and Storm Elemental is NOT active.
  65. actions.aoe+="/lava_burst,if=buff.lava_surge.up&spell_targets.chain_lightning<4&(!pet.storm_elemental.active)&dot.flame_shock.ticking"
  66. # Use Elemental Blast against up to 3 targets as long as Storm Elemental is not active.
  67. actions.aoe+="/elemental_blast,if=talent.elemental_blast.enabled&spell_targets.chain_lightning<5&(!pet.storm_elemental.active)"
  68. actions.aoe+="/lava_beam,if=talent.ascendance.enabled"
  69. actions.aoe+="/chain_lightning"
  70. actions.aoe+="/lava_burst,moving=1,if=buff.lava_surge.up&cooldown_react"
  71. actions.aoe+="/flame_shock,moving=1,target_if=refreshable"
  72. actions.aoe+="/frost_shock,moving=1"
  73.  
  74.  
  75. # Storm Elemental Single Target
  76. actions.se_single_target="flame_shock,target_if=(remains<=gcd)&(buff.lava_surge.up|!buff.bloodlust.up)"
  77. actions.se_single_target+="/elemental_blast,if=talent.elemental_blast.enabled"
  78. actions.se_single_target+="/stormkeeper,if=talent.stormkeeper.enabled&(maelstrom<44)"
  79. actions.se_single_target+="/echoing_shock,if=talent.echoing_shock.enabled"
  80. actions.se_single_target+="/lava_burst,if=buff.wind_gust.stack<18|buff.lava_surge.up"
  81. actions.se_single_target+="/lightning_bolt,if=buff.stormkeeper.up"
  82. actions.se_single_target+="/earthquake,if=buff.echoes_of_great_sundering.up"
  83. actions.se_single_target+="/earthquake,if=(spell_targets.chain_lightning>1)&(!dot.flame_shock.refreshable)"
  84. actions.se_single_target+="/earth_shock,if=spell_targets.chain_lightning<2&maelstrom>=60&(buff.wind_gust.stack<20|maelstrom>90)|(runeforge.echoes_of_great_sundering.equipped&!buff.echoes_of_great_sundering.up)"
  85. actions.se_single_target+="/lightning_bolt,if=(buff.stormkeeper.remains<1.1*gcd*buff.stormkeeper.stack|buff.stormkeeper.up&buff.master_of_the_elements.up)"
  86. actions.se_single_target+="/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up"
  87. actions.se_single_target+="/lava_burst,if=buff.ascendance.up"
  88. actions.se_single_target+="/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled"
  89. actions.se_single_target+="/icefury,if=talent.icefury.enabled&!(maelstrom>75&cooldown.lava_burst.remains<=0)"
  90. actions.se_single_target+="/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled"
  91. actions.se_single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up"
  92. actions.se_single_target+="/chain_harvest"
  93. actions.se_single_target+="/static_discharge,if=talent.static_discharge.enabled"
  94. actions.se_single_target+="/earth_elemental,if=!talent.primal_elementalist.enabled|talent.primal_elementalist.enabled&(!pet.storm_elemental.active)"
  95. actions.se_single_target+="/chain_lightning,if=active_enemies>1&(spell_targets.chain_lightning>1|spell_targets.lava_beam>1)"
  96. actions.se_single_target+="/lightning_bolt"
  97. actions.se_single_target+="/flame_shock,moving=1,target_if=refreshable"
  98. actions.se_single_target+="/flame_shock,moving=1,if=movement.distance>6"
  99. actions.se_single_target+="/frost_shock,moving=1"
  100.  
  101. # 1 Target with Windspeaker's Lava Resurgence
  102.  
  103. # Cast Lightning Bolt in order to not waste Stormkeeper stacks
  104. actions.wlr_single_target="lightning_bolt,if=(buff.stormkeeper.remains<1.1*gcd*buff.stormkeeper.stack)"
  105. # Cast Frost Shock in order to not waste Icefury stacks
  106. actions.wlr_single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<1.1*gcd*buff.icefury.stack"
  107. # Get Flameshock ticking if it is not up
  108. actions.wlr_single_target+="/flame_shock,target_if=(!ticking|dot.flame_shock.remains<=gcd|talent.ascendance.enabled&dot.flame_shock.remains<(cooldown.ascendance.remains+buff.ascendance.duration)&cooldown.ascendance.remains<4)&(buff.lava_surge.up|!buff.bloodlust.up)"
  109. # Get all the Flame Shock up for PWave
  110. actions.wlr_single_target+="/flame_shock,if=buff.primordial_wave.up,target_if=min:dot.flame_shock.remains,cycle_targets=1,target_if=refreshable"
  111. # Cast Ascendence on cooldown
  112. actions.wlr_single_target+="/ascendance,if=talent.ascendance.enabled&(time>=60|buff.bloodlust.up)&(cooldown.lava_burst.remains>0)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)"
  113. # Cast Lava Burst on Lava Surge
  114. actions.wlr_single_target+="/lava_burst,if=buff.lava_surge.up"
  115. # Cast Elemental Blast on cooldown if you won't overcap
  116. actions.wlr_single_target+="/elemental_blast,if=talent.elemental_blast.enabled&(!runeforge.windspeakers_lava_resurgence.equipped|maelstrom<70)"
  117. # Cast Stormkeeper on cooldown
  118. actions.wlr_single_target+="/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)&(maelstrom<44)"
  119. # Cast Echoing Shock on cooldown if you have a charge of Lava Burst or one is about to come off of cooldown
  120. actions.wlr_single_target+="/echoing_shock,if=talent.echoing_shock.enabled&maelstrom>=60"
  121. # Cast Lava Burst if you just cast Echoing Shock
  122. actions.wlr_single_target+="/earth_shock,if=talent.echoing_shock.enabled&buff.echoing_shock.up"
  123. # Cast Liquid Magma Totem on cooldown
  124. actions.wlr_single_target+="/liquid_magma_totem,if=talent.liquid_magma_totem.enabled"
  125. # Cast Lightning Bolt with Stormkeeper charges and Master of the Elements
  126. actions.wlr_single_target+="/lightning_bolt,if=buff.stormkeeper.up&buff.master_of_the_elements.up&maelstrom<60"
  127. # Cast Lava Surge Lava Burst
  128. actions.wlr_single_target+="/lava_burst,if=cooldown_react&(!buff.master_of_the_elements.up&buff.icefury.up)"
  129. # Empty Lava Burst Charges before Earth Shock
  130. actions.wlr_single_target+="/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled&!buff.icefury.up"
  131. # MotE Your Earth Shock
  132. actions.wlr_single_target+="/lava_burst,if=talent.echo_of_the_elements.enabled&!buff.master_of_the_elements.up&maelstrom>=50"
  133. # Cast Earth Shock with either Master of the Elements or to avoid capping Maelstrom or to avoid wasting a Master of the Elements buff that could go on a Stormkeeper or just at 60 without Master of the Elements or Elemental Blast is 2 GCDs away
  134. actions.wlr_single_target+="/earth_shock,if=talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up|cooldown.lava_burst.remains>0&maelstrom>=92|spell_targets.chain_lightning<2&buff.stormkeeper.up&cooldown.lava_burst.remains<=gcd)|!talent.master_of_the_elements.enabled|cooldown.elemental_blast.remains<=1.1*gcd*2"
  135. # Cast Frost Shock under Icefury and Master of the Elements buffs
  136. actions.wlr_single_target+="/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up"
  137. # Cast Lava Burst under Ascendence
  138. actions.wlr_single_target+="/lava_burst,if=buff.ascendance.up"
  139. # Cast Lava Surge Lava Burst without Master of the Elements
  140. actions.wlr_single_target+="/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled"
  141. # Cast Icefury on cooldown when it won't overcap and you have no more Lava Bursts
  142. actions.wlr_single_target+="/icefury,if=talent.icefury.enabled&!(maelstrom>35&cooldown.lava_burst.remains<=0)"
  143. # Cast Frost Shock with Icefury buff
  144. actions.wlr_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)"
  145. # Cast Lava Burst
  146. actions.wlr_single_target+="/lava_burst"
  147. # Cast Flameshock in pandemic range
  148. actions.wlr_single_target+="/flame_shock,target_if=refreshable"
  149. # Cast Frost Shock to trigger Elemental Equilibrium
  150. actions.wlr_single_target+="/frost_shock,if=runeforge.elemental_equilibrium.equipped&!buff.elemental_equilibrium_debuff.up&!talent.elemental_blast.enabled&!talent.echoing_shock.enabled"
  151. # Cast Chain Harvest on cooldown
  152. actions.wlr_single_target+="/chain_harvest"
  153. # Cast Static Discharge on cooldown
  154. actions.wlr_single_target+="/static_discharge,if=talent.static_discharge.enabled"
  155. # Cast Earth Elemental
  156. actions.wlr_single_target+="/earth_elemental,if=!talent.primal_elementalist.enabled|!pet.fire_elemental.active"
  157. # Cast Lightning Bolt
  158. actions.wlr_single_target+="/lightning_bolt"
  159. # Cast Flameshock in pandemic range if you need to move
  160. actions.wlr_single_target+="/flame_shock,moving=1,target_if=refreshable"
  161. # Cast Flameshock on longer movement
  162. actions.wlr_single_target+="/flame_shock,moving=1,if=movement.distance>6"
  163. # Cast Frost Shock on movement
  164. actions.wlr_single_target+="/frost_shock,moving=1"
  165.  
  166. # 1-2 Target Without Windspeaker's Lava Resurgence
  167. actions.single_target="flame_shock,target_if=(!ticking|dot.flame_shock.remains<=gcd|talent.ascendance.enabled&dot.flame_shock.remains<(cooldown.ascendance.remains+buff.ascendance.duration)&cooldown.ascendance.remains<4)&(buff.lava_surge.up|!buff.bloodlust.up)"
  168. actions.single_target+="/ascendance,if=talent.ascendance.enabled&(time>=60|buff.bloodlust.up)&(cooldown.lava_burst.remains>0)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)"
  169. actions.single_target+="/elemental_blast,if=talent.elemental_blast.enabled&(talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up&maelstrom<60|!buff.master_of_the_elements.up)|!talent.master_of_the_elements.enabled)"
  170. actions.single_target+="/stormkeeper,if=talent.stormkeeper.enabled&(raid_event.adds.count<3|raid_event.adds.in>50)&(maelstrom<44)"
  171. actions.single_target+="/echoing_shock,if=talent.echoing_shock.enabled&cooldown.lava_burst.remains<=0"
  172. actions.single_target+="/lava_burst,if=talent.echoing_shock.enabled&buff.echoing_shock.up"
  173. actions.single_target+="/liquid_magma_totem,if=talent.liquid_magma_totem.enabled"
  174. actions.single_target+="/lightning_bolt,if=buff.stormkeeper.up&spell_targets.chain_lightning<2&(buff.master_of_the_elements.up)"
  175. actions.single_target+="/earthquake,if=buff.echoes_of_great_sundering.up&(!talent.master_of_the_elements.enabled|buff.master_of_the_elements.up)"
  176. actions.single_target+="/earthquake,if=spell_targets.chain_lightning>1&!dot.flame_shock.refreshable&!runeforge.echoes_of_great_sundering.equipped&(!talent.master_of_the_elements.enabled|buff.master_of_the_elements.up|cooldown.lava_burst.remains>0&maelstrom>=92)"
  177. actions.single_target+="/earth_shock,if=talent.master_of_the_elements.enabled&(buff.master_of_the_elements.up|cooldown.lava_burst.remains>0&maelstrom>=92|spell_targets.chain_lightning<2&buff.stormkeeper.up&cooldown.lava_burst.remains<=gcd)|!talent.master_of_the_elements.enabled"
  178. actions.single_target+="/lightning_bolt,if=(buff.stormkeeper.remains<1.1*gcd*buff.stormkeeper.stack|buff.stormkeeper.up&buff.master_of_the_elements.up)"
  179. actions.single_target+="/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up"
  180. actions.single_target+="/lava_burst,if=buff.ascendance.up"
  181. actions.single_target+="/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled"
  182. actions.single_target+="/icefury,if=talent.icefury.enabled&!(maelstrom>75&cooldown.lava_burst.remains<=0)"
  183. actions.single_target+="/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled"
  184. actions.single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<1.1*gcd*buff.icefury.stack"
  185. actions.single_target+="/lava_burst,if=cooldown_react"
  186. actions.single_target+="/flame_shock,target_if=refreshable"
  187. actions.single_target+="/earthquake,if=spell_targets.chain_lightning>1&!runeforge.echoes_of_great_sundering.equipped|buff.echoes_of_great_sundering.up"
  188. 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)"
  189. actions.single_target+="/frost_shock,if=runeforge.elemental_equilibrium.equipped&!buff.elemental_equilibrium_debuff.up&!talent.elemental_blast.enabled&!talent.echoing_shock.enabled"
  190. actions.single_target+="/chain_harvest"
  191. actions.single_target+="/static_discharge,if=talent.static_discharge.enabled"
  192. actions.single_target+="/earth_elemental,if=!talent.primal_elementalist.enabled|!pet.fire_elemental.active"
  193. # Cast Chain Lightning
  194. actions.single_target+="/chain_lightning,if=active_enemies>1&(spell_targets.chain_lightning>1|spell_targets.lava_beam>1)"
  195. actions.single_target+="/lightning_bolt"
  196. actions.single_target+="/flame_shock,moving=1,target_if=refreshable"
  197. actions.single_target+="/flame_shock,moving=1,if=movement.distance>6"
  198. actions.single_target+="/frost_shock,moving=1"
  199.  
  200.  
Add Comment
Please, Sign In to add comment