Ok code could probably be refined more, especially since the auto target selection sometimes jumps between 2 targets for a sec before settling but here is a proof of concept...
I current just have this setup as another ability, could also probably be made into a function but all this is is the target/rupture tick tracking and switcher.
Code:if mtar1==nil or not UnitAffectingCombat("player") then mtar1 = 0 mtar1name = 0 mrup1 = 999 end if mtar2==nil or not UnitAffectingCombat("player") then mtar2 = 0 mtar2name = 0 mrup2 = 999 end if mtar3==nil or not UnitAffectingCombat("player") then mtar3 = 0 mtar3name = 0 mrup3 = 999 end ----Dead/Non-Existant Target Check if UnitAffectingCombat("player") then if UnitExists("target") then ctar = UnitGUID("target") ctarname = UnitName("target") if UnitDebuffID(t,1943,p) then crupr = (select(7, UnitDebuffID(t,1943,p)) - GetTime()) else crupr = 0 end if mtar1 ~= 0 and not UnitExists(mtar1name) then mtar1 = 0 mtar1name = 0 mrup1 = 999 end if mtar2 ~= 0 and not UnitExists(mtar2name) then mtar2 = 0 mtar2name = 0 mrup2 = 999 end if mtar3 ~= 0 and not UnitExists(mtar3name) then mtar3 = 0 mtar3name = 0 mrup3 = 999 end ----Target Tracking and Assignment if ctar ~= mtar1 and ctar ~= mtar2 and ctar ~= mtar3 then if mtar1==0 then mtar1 = ctar mtar1name = ctarname end if mtar2==0 then mtar2 = ctar mtar2name = ctarname end if mtar3==0 then mtar3 = ctar mtar3name = ctarname end end ----Target Rupture Tracking and Switch if ctar == mtar1 and crupr > 3 and (mrup2 > 3 or mrup3 > 3) then mrup1 = crupr TargetNearestEnemy() end if ctar == mtar2 and crupr > 3 and (mrup1 > 3 or mrup3 > 3) then mrup2 = crupr TargetNearestEnemy() end if ctar == mtar3 and crupr > 3 and (mrup1 > 3 or mrup2 > 3) then mrup3 = crupr --TargetNearestEnemy() end ----Direct Target Rupture Refreash if mrup1 <= 3 then TargetUnit(mtar1name) end if mrup2 <= 3 then TargetUnit(mtar1name) end if mrup3 <= 3 then TargetUnit(mtar1name) end end end