diff --git a/Dragonflight/RogueAssassination.lua b/Dragonflight/RogueAssassination.lua index 2c9cacc50..857579777 100644 --- a/Dragonflight/RogueAssassination.lua +++ b/Dragonflight/RogueAssassination.lua @@ -2359,7 +2359,11 @@ spec:RegisterAbilities( { aura = "rupture", cycle = "rupture", - usable = function () return combo_points.current > 0, "requires combo_points" end, + usable = function () + if combo_points.current == 0 then return false, "requires combo_points" end + if ( settings.rupture_duration or 0 ) > 0 and target.time_to_die < ( settings.rupture_duration or 0 ) then return false, "target will die within " .. ( settings.rupture_duration or 0 ) .. " seconds" end + return true + end, used_for_danse = function() if not state.spec.subtlety or not talent.danse_macabre.enabled or buff.shadow_dance.down then return false end diff --git a/Dragonflight/RogueSubtlety.lua b/Dragonflight/RogueSubtlety.lua index ab71cf7ee..40d60a3af 100644 --- a/Dragonflight/RogueSubtlety.lua +++ b/Dragonflight/RogueSubtlety.lua @@ -8,6 +8,7 @@ local Hekili = _G[ addon ] local class, state = Hekili.Class, Hekili.State local insert, wipe = table.insert, table.wipe +local strformat = string.format local spec = Hekili:NewSpecialization( 261 ) @@ -655,7 +656,7 @@ spec:RegisterHook( "reset_precast", function( amt, resource ) end if buff.shuriken_tornado.up then - local moment = buff.shuriken_tornado.expires + local moment = buff.shuriken_tornado.expires - 0.02 while( moment > query_time ) do state:QueueAuraEvent( "shuriken_tornado", class.abilities.shuriken_storm.handler, moment, "AURA_PERIODIC" ) moment = moment - 1 @@ -1260,7 +1261,7 @@ spec:RegisterAbilities( { handler = function () applyBuff( "shuriken_tornado" ) - local moment = buff.shuriken_tornado.expires + local moment = buff.shuriken_tornado.expires - 0.02 while( moment > query_time ) do state:QueueAuraEvent( "shuriken_tornado", class.abilities.shuriken_storm.handler, moment, "AURA_PERIODIC" ) moment = moment - 1 @@ -1364,6 +1365,18 @@ spec:RegisterStateExpr( "priority_rotation", function () return prio end ) +spec:RegisterSetting( "rupture_duration", 12, { + name = strformat( "%s Duration", Hekili:GetSpellLinkWithTexture( 1943 ) ), + desc = strformat( "If set above 0, %s will not be recommended if the target will die within the timeframe specified.\n\n" + .. "Popular guides suggest using that a target should live at least 12 seconds for %s to be worth using.\n\n", + Hekili:GetSpellLinkWithTexture( 1943 ), class.specs[ 259 ].abilities.rupture.name ), + type = "range", + min = 0, + max = 18, + step = 0.1, + width = "full", +} ) + spec:RegisterSetting( "solo_vanish", true, { name = "Allow |T132331:0|t Vanish when Solo", desc = "If unchecked, the addon will not recommend |T132331:0|t Vanish when you are alone (to avoid resetting combat).",