Skip to content

Commit

Permalink
Devastation fix; Marksman, Enhancement, Demonology updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
Hekili committed Jun 27, 2023
1 parent ac70a41 commit b956482
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 30 deletions.
2 changes: 1 addition & 1 deletion Dragonflight/APLs/EvokerDevastation.simc
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ actions.st+=/disintegrate,if=buff.dragonrage.remains>19&cooldown.fire_breath.rem
# Throw Star on CD, Don't overcap with Arcane Vigor.
actions.st+=/shattering_star,if=(buff.essence_burst.stack<buff.essence_burst.max_stack|!talent.arcane_vigor)&(!cooldown.fire_breath.up|!talent.event_horizon)
# Eternity Surge logic Play around power swell if you don't have pi or lust up. Play around blazing shards if outside of DR. DS optimization: Only cast if current fight will last 8s+ or encounter ends in less than 30s
+actions.st+=/call_action_list,name=es,if=(!talent.dragonrage|variable.next_dragonrage>variable.dr_prep_time_st|!talent.animosity)&((buff.power_swell.remains<variable.r1_cast_time|buff.bloodlust.up|buff.power_infusion.up)&(buff.blazing_shards.remains<variable.r1_cast_time|buff.dragonrage.up))&(target.time_to_die>=8|boss&fight_remains<30)
actions.st+=/call_action_list,name=es,if=(!talent.dragonrage|variable.next_dragonrage>variable.dr_prep_time_st|!talent.animosity)&((buff.power_swell.remains<variable.r1_cast_time|buff.bloodlust.up|buff.power_infusion.up)&(buff.blazing_shards.remains<variable.r1_cast_time|buff.dragonrage.up))&(target.time_to_die>=8|boss&fight_remains<30)
# Wait for FB/ES to be ready if spending another GCD would result in the cast no longer fitting inside of DR
actions.st+=/wait,sec=cooldown.fire_breath.remains,if=talent.animosity&buff.dragonrage.up&buff.dragonrage.remains<gcd.max+variable.r1_cast_time*buff.tip_the_scales.down&buff.dragonrage.remains-cooldown.fire_breath.remains>=variable.r1_cast_time*buff.tip_the_scales.down
actions.st+=/wait,sec=cooldown.eternity_surge.remains,if=talent.animosity&buff.dragonrage.up&buff.dragonrage.remains<gcd.max+variable.r1_cast_time&buff.dragonrage.remains-cooldown.eternity_surge.remains>variable.r1_cast_time*buff.tip_the_scales.down
Expand Down
6 changes: 3 additions & 3 deletions Dragonflight/APLs/HunterMarksmanship.simc
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ actions.precombat+=/steady_shot,if=active_enemies>2|talent.volley&active_enemies
actions=counter_shot
actions+=/tranquilizing_shot
# Determine if it is a good time to use Trueshot. Raid event optimization takes priority so usage is saved for multiple targets as long as it won't delay over half its duration. Otherwise allow for small delays to line up buff effect trinkets, and when using Bullseye, delay the last usage of the fight for max stacks.
actions+=/variable,name=trueshot_ready,value=cooldown.trueshot.ready&(active_enemies=1&(!talent.bullseye|fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2|buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.1.has_use_buff|trinket.1.cooldown.remains>30|trinket.1.cooldown.ready)&(!trinket.2.has_use_buff|trinket.2.cooldown.remains>30|trinket.2.cooldown.ready)|active_enemies>1|fight_remains<25)
actions+=/variable,name=trueshot_ready,value=cooldown.trueshot.ready&buff.trueshot.down&(active_enemies=1&(!talent.bullseye|fight_remains>cooldown.trueshot.duration_guess+buff.trueshot.duration%2|buff.bullseye.stack=buff.bullseye.max_stack)&(!trinket.1.has_use_buff|trinket.1.cooldown.remains>30|trinket.1.cooldown.ready)&(!trinket.2.has_use_buff|trinket.2.cooldown.remains>30|trinket.2.cooldown.ready)|active_enemies>1|fight_remains<25)
actions+=/call_action_list,name=cds
actions+=/call_action_list,name=trinkets
actions+=/call_action_list,name=st,strict=1,if=active_enemies<3|!talent.trick_shots
Expand All @@ -36,7 +36,7 @@ actions.st+=/death_chakram
actions.st+=/wailing_arrow,if=active_enemies>1
actions.st+=/rapid_fire,if=talent.surging_shots
actions.st+=/kill_shot
actions.st+=/trueshot,if=variable.trueshot_ready&(buff.trueshot.down|buff.trueshot.remains<5)
actions.st+=/trueshot,if=variable.trueshot_ready
# Trigger Salvo if Volley isn't being used to trigger it.
actions.st+=/multishot,if=buff.salvo.up&!talent.volley
# With Serpentstalker's Trickery target the lowest remaining Serpent Sting. Without Chimaera Shot don't overwrite Precise Shots unless either Trueshot is active or Aimed Shot would cap before its next cast. On two targets with Chimaera Shot don't overwrite Precise Shots unless the target is within Careful Aim range in addition to either Trueshot being active or Aimed Shot capping before its next cast. Overwrite freely if it can cleave.
Expand All @@ -61,7 +61,7 @@ actions.trickshots+=/wailing_arrow
actions.trickshots+=/serpent_sting,cycle_targets=1,if=refreshable&talent.hydras_bite&!talent.serpentstalkers_trickery
actions.trickshots+=/barrage,if=active_enemies>7
actions.trickshots+=/volley
actions.trickshots+=/trueshot
actions.trickshots+=/trueshot,if=buff.trueshot.down
actions.trickshots+=/rapid_fire,if=buff.trick_shots.remains>=execute_time&talent.surging_shots
# For Serpentstalker's Trickery, target the lowest remaining Serpent Sting. Generally only cast if it would cleave with Trick Shots. Don't overwrite Precise Shots unless Trueshot is up or Aimed Shot would cap otherwise.
actions.trickshots+=/aimed_shot,cycle_targets=1,if=talent.serpentstalkers_trickery&(buff.trick_shots.remains>=execute_time&(buff.precise_shots.down|buff.trueshot.up|full_recharge_time<cast_time+gcd))
Expand Down
7 changes: 4 additions & 3 deletions Dragonflight/APLs/ShamanEnhancement.simc
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@ actions.single+=/crash_lightning,if=buff.doom_winds.up|(talent.alpha_wolf.enable
actions.single+=/primordial_wave,if=raid_event.adds.in>42|raid_event.adds.in<6
actions.single+=/flame_shock,if=!ticking
actions.single+=/lava_lash,if=talent.molten_assault.enabled&dot.flame_shock.refreshable
actions.single+=/ice_strike
actions.single+=/ice_strike,if=!buff.ice_strike.up
actions.single+=/frost_shock,if=buff.hailstorm.up
actions.single+=/lava_lash
actions.single+=/ice_strike
actions.single+=/windstrike
actions.single+=/stormstrike
actions.single+=/sundering,if=raid_event.adds.in>=40
Expand All @@ -85,10 +86,10 @@ actions.aoe+=/chain_lightning,if=buff.maelstrom_weapon.stack=buff.maelstrom_weap
actions.aoe+=/crash_lightning,if=buff.doom_winds.up|!buff.crash_lightning.up|(talent.alpha_wolf.enabled&feral_spirit.active&alpha_wolf_min_remains=0)
actions.aoe+=/sundering,if=buff.doom_winds.up|set_bonus.tier30_2pc
actions.aoe+=/fire_nova,if=active_dot.flame_shock>=6|(active_dot.flame_shock>=4&active_dot.flame_shock>=cycle_enemies)
actions.aoe+=/ice_strike,if=talent.hailstorm.enabled
actions.aoe+=/lava_lash,cycle_targets=1,if=talent.lashing_flames.enabled
actions.aoe+=/frost_shock,if=talent.hailstorm.enabled&buff.hailstorm.up
actions.aoe+=/lava_lash,if=(talent.molten_assault.enabled&dot.flame_shock.ticking&(active_dot.flame_shock<active_enemies)&active_dot.flame_shock<6)|(talent.ashen_catalyst.enabled&buff.ashen_catalyst.stack=buff.ashen_catalyst.max_stack)
actions.aoe+=/ice_strike,if=talent.hailstorm.enabled
actions.aoe+=/frost_shock,if=talent.hailstorm.enabled&buff.hailstorm.up
actions.aoe+=/sundering
actions.aoe+=/flame_shock,if=talent.molten_assault.enabled&!ticking
actions.aoe+=/flame_shock,cycle_targets=1,if=refreshable&(talent.fire_nova.enabled|talent.primordial_wave.enabled)&(active_dot.flame_shock<active_enemies)&active_dot.flame_shock<6
Expand Down
23 changes: 8 additions & 15 deletions Dragonflight/APLs/WarlockDemonology.simc
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
actions.precombat+=/fel_domination,if=time>0&!pet.alive&!buff.grimoire_of_sacrifice.up
actions.precombat+=/summon_pet,if=!pet.alive&!buff.grimoire_of_sacrifice.up
actions.precombat+=/variable,name=tyrant_prep_start,op=set,value=12
actions.precombat+=/variable,name=tyrant_prep_start,op=set,value=10
actions.precombat+=/variable,name=first_tyrant,op=set,value=14+talent.summon_vilefiend+talent.grimoire_felguard
actions.precombat+=/power_siphon,if=buff.wild_imps.stack>1&buff.demonic_core.stack<3
actions.precombat+=/demonbolt,if=soul_shard<5&(boss|cast_time=0)
Expand All @@ -11,16 +11,16 @@ actions+=/devour_magic
actions+=/variable,name=tyrant_padding,op=set,value=action.summon_demonic_tyrant.cast_time*2+1
actions+=/variable,name=np_condition,op=set,value=cooldown.nether_portal.up|buff.nether_portal.up|pet.pit_lord.active|!talent.nether_portal|cooldown.nether_portal.remains>30
actions+=/call_action_list,name=tyrant,if=talent.summon_demonic_tyrant&cooldown.summon_demonic_tyrant.remains_expected<variable.tyrant_prep_start&(boss|fight_remains>cooldown.summon_demonic_tyrant.remains_expected)
## actions+=/invoke_external_buff,name=power_infusion,if=!talent.nether_portal&!talent.summon_demonic_tyrant|boss&time_to_die<25
actions+=/implosion,if=boss&time_to_die<2*gcd
actions+=/nether_portal,if=!talent.summon_demonic_tyrant&soul_shard>2|boss&time_to_die<30
## actions+=/invoke_external_buff,name=power_infusion,if=!talent.nether_portal&!talent.summon_demonic_tyrant|boss&fight_remains<25
actions+=/implosion,if=boss&fight_remains<2*gcd
actions+=/nether_portal,if=!talent.summon_demonic_tyrant&soul_shard>2|boss&fight_remains<30
actions+=/call_action_list,name=items
actions+=/call_action_list,name=ogcd,if=buff.demonic_power.up|!talent.summon_demonic_tyrant&(buff.nether_portal.up|!talent.nether_portal)
actions+=/hand_of_guldan,if=buff.nether_portal.remains>cast_time
actions+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected>cooldown
actions+=/call_dreadstalkers,if=!talent.summon_demonic_tyrant|time_to_die<14
actions+=/grimoire_felguard,if=!talent.summon_demonic_tyrant|boss&time_to_die<cooldown.summon_demonic_tyrant.remains_expected
actions+=/summon_vilefiend,if=!talent.summon_demonic_tyrant|cooldown.summon_demonic_tyrant.remains_expected>cooldown|boss&time_to_die<cooldown.summon_demonic_tyrant.remains_expected
actions+=/call_dreadstalkers,if=cooldown.summon_demonic_tyrant.remains_expected>cooldown+8
actions+=/call_dreadstalkers,if=!talent.summon_demonic_tyrant|fight_remains<14
actions+=/grimoire_felguard,if=!talent.summon_demonic_tyrant|boss&fight_remains<cooldown.summon_demonic_tyrant.remains_expected
actions+=/summon_vilefiend,if=!talent.summon_demonic_tyrant|cooldown.summon_demonic_tyrant.remains_expected>cooldown+variable.tyrant_prep_start|boss&fight_remains<cooldown.summon_demonic_tyrant.remains_expected
actions+=/guillotine,if=cooldown.demonic_strength.remains|!talent.demonic_strength
actions+=/demonic_strength
actions+=/bilescourge_bombers,if=!pet.demonic_tyrant.active
Expand Down Expand Up @@ -53,12 +53,6 @@ actions.ogcd+=/blood_fury
actions.ogcd+=/fireblood

actions.tyrant=variable,name=tyrant_window_ends,op=setif,value=cooldown.summon_demonic_tyrant.remains_expected,value_else=variable.first_tyrant-time-variable.tyrant_padding,condition=time>variable.first_tyrant
## These are currently optimal for Patchwerk and HAC in SimC, but can be simplified in the addon using major_demon_remains.
## actions.tyrant+=/variable,name=lowest_demon_remains,op=setif,value=buff.dreadstalkers.remains,value_else=100,condition=buff.dreadstalkers.up
## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.vilefiend.remains,if=buff.vilefiend.up&buff.vilefiend.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.grimoire_felguard.remains,if=buff.grimoire_felguard.up&buff.grimoire_felguard.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=lowest_demon_remains,op=min,value=buff.nether_portal.remains,if=buff.nether_portal.up&buff.nether_portal.remains<variable.lowest_demon_remains
## actions.tyrant+=/variable,name=tyrant_window_ends,op=set,value=variable.lowest_demon_remains-variable.tyrant_padding,if=time>variable.first_tyrant&variable.lowest_demon_remains<100&variable.lowest_demon_remains-variable.tyrant_padding>variable.tyrant_window_ends
actions.tyrant+=/variable,name=tyrant_window_ends,op=set,value=major_demon_remains-variable.tyrant_padding,if=major_demon_remains-variable.tyrant_padding>variable.tyrant_window_ends
actions.tyrant+=/variable,name=tyrant_window_ends,op=max,value=cooldown.call_dreadstalkers.remains+action.call_dreadstalkers.cast_time+12-variable.tyrant_padding,if=buff.dreadstalkers.down
actions.tyrant+=/power_siphon,if=buff.wild_imps.stack>1&!buff.nether_portal.up&buff.demonic_core.stack<3
Expand All @@ -72,6 +66,5 @@ actions.tyrant+=/summon_demonic_tyrant,if=variable.tyrant_window_ends<=action.ha
actions.tyrant+=/hand_of_guldan,if=variable.tyrant_window_ends>cast_time&(buff.nether_portal.up|soul_shard>2&variable.tyrant_window_ends>0|soul_shard=5)&!cooldown.call_dreadstalkers.up
actions.tyrant+=/hand_of_guldan,if=talent.soulbound_tyrant&buff.dreadstalkers.up&variable.tyrant_window_ends<action.shadow_bolt.cast_time
actions.tyrant+=/demonbolt,if=buff.demonic_core.up
actions.tyrant+=/power_siphon,if=buff.wild_imps.stack>1&!buff.nether_portal.up
actions.tyrant+=/soul_strike
actions.tyrant+=/shadow_bolt
Loading

0 comments on commit b956482

Please sign in to comment.