Skip to content

Commit

Permalink
Aff: Fix Shadow Embrace stacks
Browse files Browse the repository at this point in the history
  • Loading branch information
Hekili committed Aug 2, 2024
1 parent 8d695ab commit af5386d
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 24 deletions.
6 changes: 4 additions & 2 deletions State.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5001,8 +5001,10 @@ do

elseif k == "stack_pct" then
if t.remains == 0 then return 0 end
if aura then aura.max_stack = max( aura.max_stack or 1, t.count ) end
return ( 100 * t.count / aura and aura.max_stack or t.count )
if aura then
return ( 100 * t.count / max( aura and aura.max_stack or 1, t.count ) )
end
return 100

elseif k == "value" then
if t.remains == 0 then return 0 end
Expand Down
38 changes: 18 additions & 20 deletions TheWarWithin/Priorities/WarlockAffliction.simc
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,23 @@ actions.precombat+=/unstable_affliction,if=!talent.soul_swap
actions.precombat+=/shadow_bolt

actions+=/spell_lock
actions+=/variable,name=ps_up,op=set,value=dot.phantom_singularity.ticking|!talent.phantom_singularity
actions+=/variable,name=vt_up,op=set,value=dot.vile_taint_dot.ticking|!talent.vile_taint
actions+=/variable,name=vt_ps_up,op=set,value=dot.vile_taint_dot.ticking|dot.phantom_singularity.ticking|(!talent.vile_taint&!talent.phantom_singularity)
actions+=/variable,name=sr_up,op=set,value=dot.soul_rot.ticking|!talent.soul_rot
actions+=/variable,name=cd_dots_up,op=set,value=variable.ps_up&variable.vt_up&variable.sr_up
actions+=/variable,name=has_cds,op=set,value=talent.phantom_singularity|talent.vile_taint|talent.soul_rot|talent.summon_darkglare
actions+=/variable,name=cds_active,op=set,value=!variable.has_cds|(variable.cd_dots_up&(cooldown.summon_darkglare.remains>20|!talent.summon_darkglare))
actions+=/variable,name=min_vt,op=reset,default=10,if=variable.min_vt
actions+=/variable,name=min_ps,op=reset,default=16,if=variable.min_ps
actions+=/variable,name=min_agony,op=set,value=dot.agony.remains+(99*!dot.agony.ticking)
actions+=/variable,name=min_vt,op=set,default=10,value=dot.vile_taint.remains+(99*!dot.vile_taint.ticking),if=active_enemies>2
actions+=/variable,name=min_ps,op=set,default=16,value=dot.phantom_singularity.remains+(99*!dot.phantom_singularity.ticking),if=active_enemies>2
actions+=/variable,name=min_ps1,op=set,value=(variable.min_vt*talent.vile_taint<?variable.min_ps*talent.phantom_singularity),if=active_enemies>2
actions+=/call_action_list,name=ogcd
actions+=/call_action_list,name=items
actions+=/call_action_list,name=variables
actions+=/call_action_list,name=cleave,if=active_enemies=2|variable.cleave_apl
actions+=/call_action_list,name=aoe,if=active_enemies>2
actions+=/call_action_list,name=cleave,strict=1,if=active_enemies=2|variable.cleave_apl
actions+=/call_action_list,name=aoe,strict=1,if=active_enemies>2
actions+=/malefic_rapture,if=boss&fight_remains<4
actions+=/vile_taint,if=!talent.soul_rot|(variable.min_agony<1.5|cooldown.soul_rot.remains<=execute_time+gcd.max)|talent.souleaters_gluttony.rank<1&cooldown.soul_rot.remains>=12
actions+=/phantom_singularity,if=(cooldown.soul_rot.remains<=execute_time|talent.souleaters_gluttony.rank<1&(!talent.soul_rot|cooldown.soul_rot.remains<=execute_time|cooldown.soul_rot.remains>=25))&dot.agony.ticking
Expand All @@ -33,9 +45,9 @@ actions+=/unstable_affliction,if=remains<5&fight_remains>3
actions+=/haunt,if=debuff.haunt.remains<5
actions+=/corruption,if=refreshable&fight_remains>5
actions+=/siphon_life,if=refreshable&fight_remains>5
actions+=/summon_darkglare,if=(!talent.shadow_embrace|debuff.shadow_embrace.stack=3)&variable.ps_up&variable.vt_up&variable.sr_up|cooldown.invoke_power_infusion_0.duration>0&cooldown.invoke_power_infusion_0.up&!talent.soul_rot
actions+=/summon_darkglare,if=(!talent.shadow_embrace|debuff.shadow_embrace.stack=debuff.shadow_embrace.max_stack)&variable.ps_up&variable.vt_up&variable.sr_up|cooldown.invoke_power_infusion_0.duration>0&cooldown.invoke_power_infusion_0.up&!talent.soul_rot
actions+=/drain_soul,interrupt=1,if=talent.shadow_embrace&(debuff.shadow_embrace.stack<3|debuff.shadow_embrace.remains<3)
actions+=/shadow_bolt,if=talent.shadow_embrace&(debuff.shadow_embrace.stack<3|debuff.shadow_embrace.remains<3)
actions+=/shadow_bolt,if=talent.shadow_embrace&(debuff.shadow_embrace.stack<2|debuff.shadow_embrace.remains<3)
actions+=/malefic_rapture,if=soul_shard>4|(talent.tormented_crescendo&buff.tormented_crescendo.stack=1&soul_shard>3)
actions+=/malefic_rapture,if=talent.tormented_crescendo&buff.tormented_crescendo.up
actions+=/malefic_rapture,if=talent.tormented_crescendo&buff.tormented_crescendo.stack=2
Expand All @@ -47,10 +59,6 @@ actions+=/shadow_bolt,if=buff.nightfall.up
actions+=/drain_soul,interrupt=1
actions+=/shadow_bolt

actions.aoe+=/variable,name=min_agony,op=set,value=dot.agony.remains+(99*!dot.agony.ticking)
actions.aoe+=/variable,name=min_vt,op=set,default=10,value=dot.vile_taint.remains+(99*!dot.vile_taint.ticking)
actions.aoe+=/variable,name=min_ps,op=set,default=16,value=dot.phantom_singularity.remains+(99*!dot.phantom_singularity.ticking)
actions.aoe+=/variable,name=min_ps1,op=set,value=(variable.min_vt*talent.vile_taint<?variable.min_ps*talent.phantom_singularity)
actions.aoe+=/haunt,if=debuff.haunt.remains<3
actions.aoe+=/vile_taint,if=(talent.souleaters_gluttony.rank=2&(variable.min_agony<1.5|cooldown.soul_rot.remains<=execute_time))|((talent.souleaters_gluttony.rank=1&cooldown.soul_rot.remains<=execute_time))|(talent.souleaters_gluttony.rank=0&(cooldown.soul_rot.remains<=execute_time|cooldown.vile_taint.remains>25))
actions.aoe+=/phantom_singularity,if=(cooldown.soul_rot.remains<=execute_time|talent.souleaters_gluttony.rank<1&(!talent.soul_rot|cooldown.soul_rot.remains<=execute_time|cooldown.soul_rot.remains>=25))&dot.agony.ticking
Expand Down Expand Up @@ -112,14 +120,4 @@ actions.ogcd+=/blood_fury,if=variable.cds_active
### Uses Power Infusion together with Cooldown windows like Summon Darkglare, Soul Rot, Phantom Singularity or Vile Taint
## actions.ogcd+=/invoke_external_buff,name=power_infusion,if=variable.cds_active&(trinket.1.is.nymues_unraveling_spindle&trinket.1.cooldown.remains|trinket.2.is.nymues_unraveling_spindle&trinket.2.cooldown.remains|!equipped.nymues_unraveling_spindle)
actions.ogcd+=/fireblood,if=variable.cds_active
actions.ogcd+=/ancestral_call,if=variable.cds_active

actions.variables+=/variable,name=ps_up,op=set,value=dot.phantom_singularity.ticking|!talent.phantom_singularity
actions.variables+=/variable,name=vt_up,op=set,value=dot.vile_taint_dot.ticking|!talent.vile_taint
actions.variables+=/variable,name=vt_ps_up,op=set,value=dot.vile_taint_dot.ticking|dot.phantom_singularity.ticking|(!talent.vile_taint&!talent.phantom_singularity)
actions.variables+=/variable,name=sr_up,op=set,value=dot.soul_rot.ticking|!talent.soul_rot
actions.variables+=/variable,name=cd_dots_up,op=set,value=variable.ps_up&variable.vt_up&variable.sr_up
actions.variables+=/variable,name=has_cds,op=set,value=talent.phantom_singularity|talent.vile_taint|talent.soul_rot|talent.summon_darkglare
actions.variables+=/variable,name=cds_active,op=set,value=!variable.has_cds|(variable.cd_dots_up&(cooldown.summon_darkglare.remains>20|!talent.summon_darkglare))
actions.variables+=/variable,name=min_vt,op=reset,default=10,if=variable.min_vt
actions.variables+=/variable,name=min_ps,op=reset,default=16,if=variable.min_ps
actions.ogcd+=/ancestral_call,if=variable.cds_active
Loading

0 comments on commit af5386d

Please sign in to comment.