[Assassination] Inefficient use of Echoing Reprimand when holding for exsang
ryanbowen opened this issue ยท 1 comments
The Echoing Reprimand (Exsang Desync) branch below is rarely taken despite 2+ mins remaining on Exsang's CD. This leads to ER being held for 3 mins and missing out on a lot of casts for no reason.
hero-rotation/HeroRotation_Rogue/Assassination.lua
Lines 435 to 437 in ed685cf
While still probably not 100% ideal, a local branch with the this change performs much better than the current release solely because it doesn't sit on ER waiting for exsang when it'll clearly be back off CD in time.
if ImprovedGarroteRemains() == 0 and Target:DebuffDown(S.Deathmark) and Target:FilteredTimeToDie(">", S.Exsanguinate:CooldownRemains() + 4) then
if S.ResoundingClarity:IsAvailable() and S.EchoingReprimand:IsReady() and Player:ComboPoints() <= 2 and S.Exsanguinate:CooldownRemains() <= 2
and not IsDebuffRefreshable(Target, S.Garrote) and Target:DebuffRemains(S.Rupture) > 9.6 then
if Cast(S.EchoingReprimand, nil, Settings.Commons.CovenantDisplayStyle, not TargetInMeleeRange) then return "Cast Echoing Reprimand (Exsang Sync)" end
elseif S.ResoundingClarity:IsAvailable() and S.EchoingReprimand:IsReady() and S.Exsanguinate:CooldownRemains() > 40 then
if Cast(S.EchoingReprimand, nil, Settings.Commons.CovenantDisplayStyle, not TargetInMeleeRange) then return "Cast Echoing Reprimand (Exsang Desync)" end
end
if S.Exsanguinate:IsReady() and not IsDebuffRefreshable(Target, S.Garrote) and Target:DebuffRemains(S.Rupture) > 4 + 4 * ExsanguinateRuptureCP()
or Target:FilteredTimeToDie("<", Target:DebuffRemains(S.Rupture)*0.5) then
if Cast(S.Exsanguinate, Settings.Assassination.GCDasOffGCD.Exsanguinate) then ShouldReturn = "Cast Exsanguinate" end
end
end
end
Why not just ditch the second conditional for echoing reprimand altogether and just tack the S.Exsanguinate:CooldownRemains() > 40
check onto the first one?