Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 41 additions & 16 deletions engine/class_modules/apl/shaman/elemental.simc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ actions.precombat+=/lightning_shield
actions.precombat+=/thunderstrike_ward
actions.precombat+=/variable,name=trinket_1_buffs,value=(trinket.1.has_use_buff|trinket.1.is.funhouse_lens)
actions.precombat+=/variable,name=trinket_2_buffs,value=(trinket.2.has_use_buff|trinket.2.is.funhouse_lens)
actions.precombat+=/variable,name=trinket_1_special,value=(trinket.1.is.stormbound_emblem_of_dazar|trinket.1.is.hex_lords_dooming_idol)
actions.precombat+=/variable,name=trinket_2_special,value=(trinket.2.is.stormbound_emblem_of_dazar|trinket.2.is.hex_lords_dooming_idol)
actions.precombat+=/stormkeeper

# Executed every time the actor is available.
Expand All @@ -17,14 +19,17 @@ actions+=/berserking
actions+=/fireblood
actions+=/ancestral_call

# Special trinkets
actions+=/use_item,name=stormbound_emblem_of_dazar,if=cooldown.ascendance.ready&(cooldown.stormkeeper.remains>15|cooldown.stormkeeper.remains<2)|fight_remains<23
actions+=/use_item,name=hex_lords_dooming_idol,if=cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<23
# Normal buff trinkets, mimic Ascendance activation conditions
actions+=/use_item,slot=trinket1,use_off_gcd=1,if=variable.trinket_1_buffs&(cooldown.ascendance.remains>trinket.1.cooldown.duration-5|cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_item,slot=trinket2,use_off_gcd=1,if=variable.trinket_2_buffs&(cooldown.ascendance.remains>trinket.2.cooldown.duration-5|cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_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&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_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&cooldown.stormkeeper.remains>15|fight_remains<21)
# Normal weapons
actions+=/use_item,slot=main_hand,use_off_gcd=1
# Dmg trinkets
actions+=/use_item,slot=trinket1,use_off_gcd=1,if=!variable.trinket_1_buffs&(cooldown.ascendance.remains>20|trinket.2.cooldown.remains>20)
actions+=/use_item,slot=trinket2,use_off_gcd=1,if=!variable.trinket_2_buffs&(cooldown.ascendance.remains>20|trinket.1.cooldown.remains>20)
actions+=/use_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)
actions+=/use_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)

actions+=/lightning_shield,if=buff.lightning_shield.down
actions+=/natures_swiftness
Expand All @@ -49,11 +54,12 @@ actions.aoe+=/ascendance,if=cooldown.stormkeeper.remains>15|fight_remains<20

# Elemental Blast if no buffs or at 3t, Earthquake to spread Lightning Rod otherwise
actions.aoe+=/elemental_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)
actions.aoe+=/earthquake,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)
actions.aoe+=/earthquake,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)
actions.aoe+=/elemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.tempest.stack<2&spell_targets.chain_lightning=3

# Spend Purging flames.
actions.aoe+=/lava_burst,if=buff.purging_flames.up&(buff.lava_surge.up|cooldown.voltaic_blaze.remains<2)
# !!! Remove tier requirement once fixed ingame
actions.aoe+=/lava_burst,if=buff.purging_flames.up&(buff.lava_surge.up&buff.flowing_elements.stack<2|cooldown.voltaic_blaze.remains<2)
# [3t] Spend Lava Surge procs to buff Tempest with MotE.
actions.aoe+=/lava_burst,if=buff.tempest.up&buff.lava_surge.up&talent.master_of_the_elements&spell_targets.chain_lightning=3
# [3t] Tempest if you have MotE.
Expand All @@ -79,26 +85,45 @@ actions.aoe+=/frost_shock,moving=1
actions.single_target=stormkeeper,if=cooldown.ascendance.remains>10|cooldown.ascendance.remains<gcd|fight_remains<20
actions.single_target+=/ancestral_swiftness

# Maintain Flame shock, minor gain to refresh it when FE is about to fade.
actions.single_target+=/flame_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))
actions.single_target+=/voltaic_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&spell_targets.chain_lightning=2)
# Maintain Flame shock, minor gain to refresh it when FE is about to fade on up to 2 targets.
actions.single_target+=/flame_shock,if=!buff.master_of_the_elements.up&dot.flame_shock.refreshable&cooldown.ascendance.remains>5
actions.single_target+=/flame_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
# Voltaic Blaze to maintain Flame shock and on cooldown to proc Purging Flames.
actions.single_target+=/voltaic_blaze,if=!buff.master_of_the_elements.up&(dot.flame_shock.refreshable&cooldown.ascendance.remains>5|talent.purging_flames&spell_targets.chain_lightning=2)

# Ascendance on CD, unless SK can be sync'd with it.
actions.single_target+=/ascendance,if=cooldown.stormkeeper.remains>15|fight_remains<20

# Lava Burst if any empowering it talent chosen OR to consume surge procs.
actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&(cooldown.lava_burst.charges_fractional>1.8|!buff.call_of_the_ancestors.up|spell_targets.chain_lightning=1)&(talent.master_of_the_elements|(talent.molten_wrath&cooldown.lava_burst.charges_fractional>0.8+talent.elemental_reverb)|buff.lava_surge.up|(talent.fusion_of_elements|talent.call_of_the_ancestors)&(!buff.storm_elemental.up|buff.wind_gust.stack=4)|buff.purging_flames.up&spell_targets.chain_lightning=2&(buff.lava_surge.up|cooldown.voltaic_blaze.remains<2))
# Consume tier procs if you gona proc new one with next builder.
actions.single_target+=/elemental_blast,if=buff.flowing_elements.up&buff.overcharge_tier.up
actions.single_target+=/earth_shock,if=buff.flowing_elements.up&buff.overcharge_tier.up

# Tempest and Lightning Bolt with SK if you have MotE.

# Lava 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).
actions.single_target+=/lava_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)
# Lava Burst to proc MotE if you have enough maelstrom for a spender.
actions.single_target+=/lava_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)
# Lava Burst without MotE to prevent overcap (with any empowering talents) or with surge proc.
actions.single_target+=/lava_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)

actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.flowing_elements.up
actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.power_of_the_maelstrom.stack=2
actions.single_target+=/lava_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

# [SB] Tempest and Lightning Bolt with SK if you have MotE.
actions.single_target+=/tempest,if=buff.master_of_the_elements.up|!talent.master_of_the_elements
actions.single_target+=/lightning_bolt,if=buff.stormkeeper.up&(buff.master_of_the_elements.up|!talent.master_of_the_elements)
actions.single_target+=/lightning_bolt,if=buff.stormkeeper.up&buff.master_of_the_elements.up&talent.tempest

actions.single_target+=/elemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15
actions.single_target+=/earth_shock,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15

actions.single_target+=/elemental_blast,target_if=min:debuff.lightning_rod.remains
actions.single_target+=/earth_shock,target_if=min:debuff.lightning_rod.remains
# Consume spare MotE to buff Flame Shock, mostly on off-targets.
actions.single_target+=/flame_shock,target_if=min:dot.flame_shock.remains,if=buff.master_of_the_elements.up&dot.flame_shock.refreshable
actions.single_target+=/voltaic_blaze,if=talent.crackling_fury&!buff.ascendance.up

actions.single_target+=/tempest
# Filler spell. Always available. Always the bottom line.
actions.single_target+=/chain_lightning,if=talent.call_of_the_ancestors&spell_targets.chain_lightning=2
actions.single_target+=/chain_lightning,if=spell_targets.chain_lightning=2
actions.single_target+=/lightning_bolt

actions.single_target+=/flame_shock,moving=1
Expand Down
57 changes: 41 additions & 16 deletions engine/class_modules/apl/shaman/elemental_ptr.simc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ actions.precombat+=/lightning_shield
actions.precombat+=/thunderstrike_ward
actions.precombat+=/variable,name=trinket_1_buffs,value=(trinket.1.has_use_buff|trinket.1.is.funhouse_lens)
actions.precombat+=/variable,name=trinket_2_buffs,value=(trinket.2.has_use_buff|trinket.2.is.funhouse_lens)
actions.precombat+=/variable,name=trinket_1_special,value=(trinket.1.is.stormbound_emblem_of_dazar|trinket.1.is.hex_lords_dooming_idol)
actions.precombat+=/variable,name=trinket_2_special,value=(trinket.2.is.stormbound_emblem_of_dazar|trinket.2.is.hex_lords_dooming_idol)
actions.precombat+=/stormkeeper

# Executed every time the actor is available.
Expand All @@ -17,14 +19,17 @@ actions+=/berserking
actions+=/fireblood
actions+=/ancestral_call

# Special trinkets
actions+=/use_item,name=stormbound_emblem_of_dazar,if=cooldown.ascendance.ready&(cooldown.stormkeeper.remains>15|cooldown.stormkeeper.remains<2)|fight_remains<23
actions+=/use_item,name=hex_lords_dooming_idol,if=cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<23
# Normal buff trinkets, mimic Ascendance activation conditions
actions+=/use_item,slot=trinket1,use_off_gcd=1,if=variable.trinket_1_buffs&(cooldown.ascendance.remains>trinket.1.cooldown.duration-5|cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_item,slot=trinket2,use_off_gcd=1,if=variable.trinket_2_buffs&(cooldown.ascendance.remains>trinket.2.cooldown.duration-5|cooldown.ascendance.ready&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_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&cooldown.stormkeeper.remains>15|fight_remains<21)
actions+=/use_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&cooldown.stormkeeper.remains>15|fight_remains<21)
# Normal weapons
actions+=/use_item,slot=main_hand,use_off_gcd=1
# Dmg trinkets
actions+=/use_item,slot=trinket1,use_off_gcd=1,if=!variable.trinket_1_buffs&(cooldown.ascendance.remains>20|trinket.2.cooldown.remains>20)
actions+=/use_item,slot=trinket2,use_off_gcd=1,if=!variable.trinket_2_buffs&(cooldown.ascendance.remains>20|trinket.1.cooldown.remains>20)
actions+=/use_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)
actions+=/use_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)

actions+=/lightning_shield,if=buff.lightning_shield.down
actions+=/natures_swiftness
Expand All @@ -49,11 +54,12 @@ actions.aoe+=/ascendance,if=cooldown.stormkeeper.remains>15|fight_remains<20

# Elemental Blast if no buffs or at 3t, Earthquake to spread Lightning Rod otherwise
actions.aoe+=/elemental_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)
actions.aoe+=/earthquake,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)
actions.aoe+=/earthquake,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)
actions.aoe+=/elemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.tempest.stack<2&spell_targets.chain_lightning=3

# Spend Purging flames.
actions.aoe+=/lava_burst,if=buff.purging_flames.up&(buff.lava_surge.up|cooldown.voltaic_blaze.remains<2)
# !!! Remove tier requirement once fixed ingame
actions.aoe+=/lava_burst,if=buff.purging_flames.up&(buff.lava_surge.up&buff.flowing_elements.stack<2|cooldown.voltaic_blaze.remains<2)
# [3t] Spend Lava Surge procs to buff Tempest with MotE.
actions.aoe+=/lava_burst,if=buff.tempest.up&buff.lava_surge.up&talent.master_of_the_elements&spell_targets.chain_lightning=3
# [3t] Tempest if you have MotE.
Expand All @@ -79,26 +85,45 @@ actions.aoe+=/frost_shock,moving=1
actions.single_target=stormkeeper,if=cooldown.ascendance.remains>10|cooldown.ascendance.remains<gcd|fight_remains<20
actions.single_target+=/ancestral_swiftness

# Maintain Flame shock, minor gain to refresh it when FE is about to fade.
actions.single_target+=/flame_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))
actions.single_target+=/voltaic_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&spell_targets.chain_lightning=2)
# Maintain Flame shock, minor gain to refresh it when FE is about to fade on up to 2 targets.
actions.single_target+=/flame_shock,if=!buff.master_of_the_elements.up&dot.flame_shock.refreshable&cooldown.ascendance.remains>5
actions.single_target+=/flame_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
# Voltaic Blaze to maintain Flame shock and on cooldown to proc Purging Flames.
actions.single_target+=/voltaic_blaze,if=!buff.master_of_the_elements.up&(dot.flame_shock.refreshable&cooldown.ascendance.remains>5|talent.purging_flames&spell_targets.chain_lightning=2)

# Ascendance on CD, unless SK can be sync'd with it.
actions.single_target+=/ascendance,if=cooldown.stormkeeper.remains>15|fight_remains<20

# Lava Burst if any empowering it talent chosen OR to consume surge procs.
actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&(cooldown.lava_burst.charges_fractional>1.8|!buff.call_of_the_ancestors.up|spell_targets.chain_lightning=1)&(talent.master_of_the_elements|(talent.molten_wrath&cooldown.lava_burst.charges_fractional>0.8+talent.elemental_reverb)|buff.lava_surge.up|(talent.fusion_of_elements|talent.call_of_the_ancestors)&(!buff.storm_elemental.up|buff.wind_gust.stack=4)|buff.purging_flames.up&spell_targets.chain_lightning=2&(buff.lava_surge.up|cooldown.voltaic_blaze.remains<2))
# Consume tier procs if you gona proc new one with next builder.
actions.single_target+=/elemental_blast,if=buff.flowing_elements.up&buff.overcharge_tier.up
actions.single_target+=/earth_shock,if=buff.flowing_elements.up&buff.overcharge_tier.up

# Tempest and Lightning Bolt with SK if you have MotE.

# Lava 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).
actions.single_target+=/lava_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)
# Lava Burst to proc MotE if you have enough maelstrom for a spender.
actions.single_target+=/lava_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)
# Lava Burst without MotE to prevent overcap (with any empowering talents) or with surge proc.
actions.single_target+=/lava_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)

actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.flowing_elements.up
actions.single_target+=/lava_burst,if=!buff.master_of_the_elements.up&maelstrom.deficit>15&buff.power_of_the_maelstrom.stack=2
actions.single_target+=/lava_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

# [SB] Tempest and Lightning Bolt with SK if you have MotE.
actions.single_target+=/tempest,if=buff.master_of_the_elements.up|!talent.master_of_the_elements
actions.single_target+=/lightning_bolt,if=buff.stormkeeper.up&(buff.master_of_the_elements.up|!talent.master_of_the_elements)
actions.single_target+=/lightning_bolt,if=buff.stormkeeper.up&buff.master_of_the_elements.up&talent.tempest

actions.single_target+=/elemental_blast,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15
actions.single_target+=/earth_shock,target_if=min:debuff.lightning_rod.remains,if=buff.master_of_the_elements.up|maelstrom.deficit<15

actions.single_target+=/elemental_blast,target_if=min:debuff.lightning_rod.remains
actions.single_target+=/earth_shock,target_if=min:debuff.lightning_rod.remains
# Consume spare MotE to buff Flame Shock, mostly on off-targets.
actions.single_target+=/flame_shock,target_if=min:dot.flame_shock.remains,if=buff.master_of_the_elements.up&dot.flame_shock.refreshable
actions.single_target+=/voltaic_blaze,if=talent.crackling_fury&!buff.ascendance.up

actions.single_target+=/tempest
# Filler spell. Always available. Always the bottom line.
actions.single_target+=/chain_lightning,if=talent.call_of_the_ancestors&spell_targets.chain_lightning=2
actions.single_target+=/chain_lightning,if=spell_targets.chain_lightning=2
actions.single_target+=/lightning_bolt

actions.single_target+=/flame_shock,moving=1
Expand Down
4 changes: 2 additions & 2 deletions profiles/MID2_Raid.simc
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ MID2_Priest_Shadow_Archon.simc
# MID2_Rogue_Outlaw_Trickster.simc
# MID2_Rogue_Subtlety.simc

# MID2_Shaman_Elemental_Stormbringer.simc
# MID2_Shaman_Elemental.simc
MID2_Shaman_Elemental.simc
MID2_Shaman_Elemental_Stormbringer.simc
# MID2_Shaman_Enhancement.simc
# MID2_Shaman_Enhancement_Stormbringer.simc

Expand Down
Loading
Loading