Advertisement
Muttonman

Ele APL 20210507 REVIEW

Apr 23rd, 2021 (edited)
1,435
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 18.47 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&spell_targets.chain_lightning<3"
  13. actions.precombat+="/lava_burst,if=!talent.elemental_blast.enabled&spell_targets.chain_lightning<3|buff.stormkeeper.up"
  14. actions.precombat+="/chain_lightning,if=!talent.elemental_blast.enabled&spell_targets.chain_lightning>=3&!buff.stormkeeper.up"
  15. # Snapshot raid buffed stats before combat begins and pre-potting is done.
  16. actions.precombat+="/snapshot_stats"
  17. actions.precombat+="/potion"
  18.  
  19. # Executed every time the actor is available.
  20. actions="spiritwalkers_grace,moving=1,if=movement.distance>6"
  21. # Interrupt of casts.
  22. actions+="/wind_shear"
  23. actions+="/potion"
  24. actions+="/use_items"
  25. # Upkeep Flame Shock as long as you're not in a Storm Elemental Window (here for non-EB openers)
  26. actions+="/flame_shock,if=(!talent.elemental_blast.enabled)&!ticking&!pet.storm_elemental.active&(spell_targets.chain_lightning<4|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped)"
  27. # Get PWave out as long as you're not in a Storm Elemental Window (always with Emeni, no clue on other soulbinds but it's mastery so probably not)
  28. 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<3&buff.wind_gust.stack<20|soulbind.lead_by_example.enabled)&(spell_targets.chain_lightning<5|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped|soulbind.lead_by_example.enabled)"
  29. # Upkeep Flame Shock as long as you're not in a Storm Elemental Window
  30. actions+="/flame_shock,if=!ticking&(!pet.storm_elemental.active|spell_targets.chain_lightning<3&buff.wind_gust.stack<20)&(spell_targets.chain_lightning<4|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped)"
  31. actions+="/fire_elemental"
  32. actions+="/blood_fury,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  33. actions+="/berserking,if=!talent.ascendance.enabled|buff.ascendance.up"
  34. actions+="/fireblood,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  35. actions+="/ancestral_call,if=!talent.ascendance.enabled|buff.ascendance.up|cooldown.ascendance.remains>50"
  36. actions+="/bag_of_tricks,if=!talent.ascendance.enabled|!buff.ascendance.up"
  37. actions+="/vesper_totem,if=covenant.kyrian"
  38. actions+="/fae_transfusion,if=covenant.night_fae&(!talent.master_of_the_elements.enabled|buff.master_of_the_elements.up)&spell_targets.chain_lightning<3"
  39. actions+="/run_action_list,name=aoe,if=active_enemies>2&(spell_targets.chain_lightning>2|spell_targets.lava_beam>2)"
  40. actions+="/run_action_list,name=single_target,if=!talent.storm_elemental.enabled&active_enemies<=2"
  41. actions+="/run_action_list,name=se_single_target,if=talent.storm_elemental.enabled&active_enemies<=2"
  42.  
  43. # 3+ Enemy
  44.  
  45. # Get Storm Elemental up
  46. actions.aoe="storm_elemental"
  47. # Echo your EQs for max damage
  48. actions.aoe+="/earthquake,if=buff.echoing_shock.up"
  49. # Chain Harvest is high priority in AOE
  50. actions.aoe+="/chain_harvest"
  51. # Cast Stormkeeper on cooldown
  52. actions.aoe+="/stormkeeper,if=talent.stormkeeper.enabled"
  53. # Maintain 2 Flame Shocks in 3t AOE (getting a third one out via PWave for those burst windows) and 1 in 4t+ outside of Storm Elemental windows
  54. actions.aoe+="/flame_shock,if=(active_dot.flame_shock<2&active_enemies<=3&!pet.storm_elemental.active|active_dot.flame_shock<1&active_enemies>=4&!pet.storm_elemental.active&talent.master_of_the_elements.enabled)|(runeforge.skybreakers_fiery_demise.equipped&!pet.storm_elemental.active),target_if=refreshable"
  55. # Making sure you have 1 Flame Shock out when Storm Elemental isn't
  56. actions.aoe+="/flame_shock,if=!active_dot.flame_shock&!pet.storm_elemental.active&(spell_targets.chain_lightning<4|talent.master_of_the_elements.enabled|runeforge.skybreakers_fiery_demise.equipped)"
  57. # Echo your Earthquakes, making sure to hold when you have EoGS so you don't waste maelstrom
  58. actions.aoe+="/echoing_shock,if=talent.echoing_shock.enabled&maelstrom>=60&(runeforge.echoes_of_great_sundering.equipped&buff.echoes_of_great_sundering.up|!runeforge.echoes_of_great_sundering.equipped)"
  59. # Ascendence on cooldown
  60. actions.aoe+="/ascendance,if=talent.ascendance.enabled&(!pet.storm_elemental.active)&(!talent.icefury.enabled|!buff.icefury.up&!cooldown.icefury.up)"
  61. # Liquid Magma Totem on cooldown
  62. actions.aoe+="/liquid_magma_totem,if=talent.liquid_magma_totem.enabled"
  63. # Forcing Chain Lightning filler at 3t
  64. actions.aoe+="/chain_lightning,if=spell_targets.chain_lightning<4&buff.master_of_the_elements.up&maelstrom<50"
  65. # Earth Shock to trigger EoGS
  66. actions.aoe+="/earth_shock,if=runeforge.echoes_of_great_sundering.equipped&!buff.echoes_of_great_sundering.up"
  67. # Lava Burst Below 4 targets when Storm Elemental is not up
  68. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=spell_targets.chain_lightning<4&(!pet.storm_elemental.active)&(buff.lava_surge.up&!buff.master_of_the_elements.up)"
  69. # Try to game Earthquake with Master of the Elements buff when fighting 3 targets. Don't overcap Maelstrom!
  70. actions.aoe+="/earthquake,if=spell_targets.chain_lightning>=2&!runeforge.echoes_of_great_sundering.equipped&(talent.master_of_the_elements.enabled&maelstrom>=50&!buff.master_of_the_elements.up)"
  71. # Lava Burst with PWave up and a Lava Surge
  72. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=buff.lava_surge.up&buff.primordial_wave.up"
  73. # Lava Burst with 50+ mael and no MotE buff and the next cast would be EQ for 3 targets with Skybreakers Fiery
  74. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=spell_targets.chain_lightning<4&runeforge.skybreakers_fiery_demise.equipped&buff.lava_surge.up&talent.master_of_the_elements.enabled&!buff.master_of_the_elements.up&maelstrom>=50"
  75. # Lava Burst with 50+ mael and no MotE buff and the next cast would be EoGS EQ or <4 targets for normal EQ
  76. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=(spell_targets.chain_lightning<4&runeforge.skybreakers_fiery_demise.equipped&talent.master_of_the_elements.enabled)|(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)&!runeforge.skybreakers_fiery_demise.equipped)"
  77. # Lava Burst to MoTE EQ at 4 targets
  78. actions.aoe+="/lava_burst,target_if=dot.flame_shock.remains,if=spell_targets.chain_lightning=4&runeforge.skybreakers_fiery_demise.equipped&buff.lava_surge.up&talent.master_of_the_elements.enabled&!buff.master_of_the_elements.up&maelstrom>=50"
  79. # Try to game Earthquake with Master of the Elements buff when fighting 3 targets. Don't overcap Maelstrom!
  80. actions.aoe+="/earthquake,if=spell_targets.chain_lightning>=2"
  81. # Make sure you don't lose a Stormkeeper buff.
  82. actions.aoe+="/chain_lightning,if=buff.stormkeeper.remains<3*gcd*buff.stormkeeper.stack"
  83. # Only cast Lava Burst on three targets if it is an instant and Storm Elemental is NOT active.
  84. actions.aoe+="/lava_burst,if=buff.lava_surge.up&spell_targets.chain_lightning<4&(!pet.storm_elemental.active)&dot.flame_shock.ticking"
  85. # Use Elemental Blast against up to 3 targets as long as Storm Elemental is not active.
  86. actions.aoe+="/elemental_blast,if=talent.elemental_blast.enabled&spell_targets.chain_lightning<5&(!pet.storm_elemental.active)"
  87. # Lava Beam filler under Ascendence
  88. actions.aoe+="/lava_beam,if=talent.ascendance.enabled"
  89. # Chain Lightning Filler
  90. actions.aoe+="/chain_lightning"
  91. # Move with Lava Surge
  92. actions.aoe+="/lava_burst,moving=1,if=buff.lava_surge.up&cooldown_react"
  93. # Move with Flame Shock refresh
  94. actions.aoe+="/flame_shock,moving=1,target_if=refreshable"
  95. # Move with Frost Shock
  96. actions.aoe+="/frost_shock,moving=1"
  97.  
  98.  
  99.  
  100.  
  101. # 1-2 Targets
  102.  
  103. # Cast Lightning Bolt in order to not waste Stormkeeper stacks
  104. actions.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.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.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.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.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.single_target+="/lava_burst,if=buff.lava_surge.up&(runeforge.windspeakers_lava_resurgence.equipped|!buff.master_of_the_elements.up&talent.master_of_the_elements.enabled)"
  115. # Cast Elemental Blast on cooldown if you won't overcap
  116. actions.single_target+="/elemental_blast,if=talent.elemental_blast.enabled&(maelstrom<70)"
  117. # Cast Stormkeeper on cooldown
  118. actions.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.single_target+="/echoing_shock,if=talent.echoing_shock.enabled&cooldown.lava_burst.remains<=gcd"
  121. # Cast Lava Burst if you just cast Echoing Shock
  122. actions.single_target+="/lava_burst,if=talent.echoing_shock.enabled&buff.echoing_shock.up"
  123. # Cast Liquid Magma Totem on cooldown
  124. actions.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.single_target+="/lightning_bolt,if=buff.stormkeeper.up&buff.master_of_the_elements.up&maelstrom<60"
  127. # Cast EoGS EQ with either MotE or to avoid overcap
  128. actions.single_target+="/earthquake,if=buff.echoes_of_great_sundering.up&(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)"
  129. # Cast EQ at 2+ enemies with either MotE or to avoid overcap
  130. 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)"
  131. # Cast Lava Surge Lava Burst
  132. actions.single_target+="/lava_burst,if=cooldown_react&(!buff.master_of_the_elements.up&buff.icefury.up)"
  133. # Empty Lava Burst Charges before Earth Shock
  134. actions.single_target+="/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled&!buff.icefury.up"
  135. # MotE Your Earth Shock
  136. actions.single_target+="/lava_burst,if=talent.echo_of_the_elements.enabled&!buff.master_of_the_elements.up&maelstrom>=50&!buff.echoes_of_great_sundering.up"
  137. # 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
  138. actions.single_target+="/earth_shock,if=(runeforge.echoes_of_great_sundering.equipped|spell_targets.chain_lightning<2)&(talent.master_of_the_elements.enabled&!buff.echoes_of_great_sundering.up&(buff.master_of_the_elements.up|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)"
  139. # Cast Frost Shock under Icefury and Master of the Elements buffs
  140. actions.single_target+="/frost_shock,if=talent.icefury.enabled&talent.master_of_the_elements.enabled&buff.icefury.up&buff.master_of_the_elements.up"
  141. # Cast Lava Burst under Ascendence
  142. actions.single_target+="/lava_burst,if=buff.ascendance.up"
  143. # Cast Lava Surge Lava Burst without Master of the Elements
  144. actions.single_target+="/lava_burst,if=cooldown_react&!talent.master_of_the_elements.enabled"
  145. # Cast Icefury on cooldown when it won't overcap and you have no more Lava Bursts
  146. actions.single_target+="/icefury,if=talent.icefury.enabled&!(maelstrom>35&cooldown.lava_burst.remains<=0)"
  147. # Cast Frost Shock with Icefury buff
  148. 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)"
  149. # Cast Lava Burst
  150. actions.single_target+="/lava_burst"
  151. # Cast Flameshock in pandemic range
  152. actions.single_target+="/flame_shock,target_if=refreshable"
  153. # Cast Frost Shock to trigger Elemental Equilibrium
  154. actions.single_target+="/frost_shock,if=runeforge.elemental_equilibrium.equipped&!buff.elemental_equilibrium_debuff.up&!talent.elemental_blast.enabled&!talent.echoing_shock.enabled"
  155. # Cast Chain Harvest on cooldown
  156. actions.single_target+="/chain_harvest"
  157. # Cast Static Discharge on cooldown
  158. actions.single_target+="/static_discharge,if=talent.static_discharge.enabled"
  159. # Cast Earth Elemental
  160. actions.single_target+="/earth_elemental,if=!talent.primal_elementalist.enabled|!pet.fire_elemental.active"
  161. # Cast Chain Lightning at 2t
  162. actions.single_target+="/chain_lightning,if=spell_targets.chain_lightning>1"
  163. # Cast Lightning Bolt
  164. actions.single_target+="/lightning_bolt"
  165. # Cast Flameshock in pandemic range if you need to move
  166. actions.single_target+="/flame_shock,moving=1,target_if=refreshable"
  167. # Cast Flameshock on longer movement
  168. actions.single_target+="/flame_shock,moving=1,if=movement.distance>6"
  169. # Cast Frost Shock on movement
  170. actions.single_target+="/frost_shock,moving=1"
  171.  
  172.  
  173.  
  174. # 1-2t Storm Elemental
  175.  
  176. # Get Storm Elemental up
  177. actions.se_single_target="storm_elemental"
  178. # Cast Frost Shock in order to not waste Icefury stacks
  179. actions.se_single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<1.1*gcd*buff.icefury.stack&buff.wind_gust.stack<18"
  180. # Upkeep Flame Shock outside of Bloodlust
  181. actions.se_single_target+="/flame_shock,target_if=(remains<=gcd)&(buff.lava_surge.up|!buff.bloodlust.up)"
  182. # Cast Frost Shock in order to not waste Icefury stacks
  183. actions.single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up&buff.icefury.remains<1.1*gcd*buff.icefury.stack"
  184. # Cast Elemental Blast on cooldown
  185. actions.se_single_target+="/elemental_blast,if=talent.elemental_blast.enabled"
  186. # Cast Stormkeeper on cooldown
  187. actions.se_single_target+="/stormkeeper,if=talent.stormkeeper.enabled"
  188. # Cast Echoing Shock on cooldown to echo LvB or EQ
  189. actions.se_single_target+="/echoing_shock,if=talent.echoing_shock.enabled&cooldown.lava_burst.remains<=gcd&spell_targets.chain_lightning<2|maelstrom>=60&spell_targets.chain_lightning>=2&(!runeforge.echoes_of_great_sundering.equipped|buff.echoes_of_great_sundering.up)|spell_targets.chain_lightning<2&buff.wind_gust.stack>=18&(!runeforge.echoes_of_great_sundering.equipped|buff.echoes_of_great_sundering.up)&maelstrom>=60"
  190. # Cast Lava Burst on Surge or cooldown when Wind Gust <18
  191. actions.se_single_target+="/lava_burst,if=(buff.wind_gust.stack<18&!buff.bloodlust.up)|buff.lava_surge.up"
  192. # Spend PWave
  193. actions.se_single_target+="/lava_burst,target_if=dot.flame_shock.remains,if=buff.lava_surge.up&buff.primordial_wave.up"
  194. # Echo your Lava Bursts on 1t
  195. actions.se_single_target+="/lava_burst,if=talent.echoing_shock.enabled&buff.echoing_shock.up&spell_targets.chain_lightning<2"
  196. # Echo your Earthquakes on 2t
  197. actions.se_single_target+="/earthquake,if=talent.echoing_shock.enabled&buff.echoing_shock.up&spell_targets.chain_lightning>=2"
  198. # Cast Stormkeeper Lightning Bolts
  199. actions.se_single_target+="/lightning_bolt,if=buff.stormkeeper.up"
  200. # Cast EoGS EQ
  201. actions.se_single_target+="/earthquake,if=buff.echoes_of_great_sundering.up"
  202. # Cast Earth Shock at 1t or with EoGS and no buff, hold if you have lots of Wind Gust stacks until you'd overcap
  203. 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)"
  204. # Cast EQ at 2t
  205. actions.se_single_target+="/earthquake,if=(spell_targets.chain_lightning>1)&(!dot.flame_shock.refreshable)"
  206. # Cast Chain Lightning under SE + Bloodlust at 2t
  207. actions.se_single_target+="/chain_lightning,if=active_enemies>1&pet.storm_elemental.active&buff.bloodlust.up"
  208. # Cast Lightning Bolt under SE + Bloodlust at 1t
  209. actions.se_single_target+="/lightning_bolt,if=pet.storm_elemental.active&buff.bloodlust.up"
  210. # Cast Lava Burst under Ascendence
  211. actions.se_single_target+="/lava_burst,if=buff.ascendance.up"
  212. # Cast Lava Burst
  213. actions.se_single_target+="/lava_burst,if=cooldown_react"
  214. # Cast Icefury on cooldown
  215. actions.se_single_target+="/icefury,if=talent.icefury.enabled&!(maelstrom>75&cooldown.lava_burst.remains<=0)"
  216. # Cast Lava Burst
  217. actions.se_single_target+="/lava_burst,if=cooldown_react&charges>talent.echo_of_the_elements.enabled"
  218. # Spend Icefury Charges on Frost Shock
  219. actions.se_single_target+="/frost_shock,if=talent.icefury.enabled&buff.icefury.up"
  220. # Cast Chain Harvest
  221. actions.se_single_target+="/chain_harvest"
  222. # Cast Static Discharge
  223. actions.se_single_target+="/static_discharge,if=talent.static_discharge.enabled"
  224. # Filler Earth Elemental
  225. actions.se_single_target+="/earth_elemental,if=!talent.primal_elementalist.enabled|talent.primal_elementalist.enabled&(!pet.storm_elemental.active)"
  226. # Filler Chain Lightning at 2t
  227. actions.se_single_target+="/chain_lightning,if=active_enemies>1&(spell_targets.chain_lightning>1|spell_targets.lava_beam>1)"
  228. # Filler Lightning Bolt
  229. actions.se_single_target+="/lightning_bolt"
  230. # Flame Shock to move on refresh
  231. actions.se_single_target+="/flame_shock,moving=1,target_if=refreshable"
  232. # Flame Shock to move long distances
  233. actions.se_single_target+="/flame_shock,moving=1,if=movement.distance>6"
  234. # Frost Shock to move
  235. actions.se_single_target+="/frost_shock,moving=1"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement