Missing shadow trap announcements
Serkora opened this issue · 6 comments
Describe the bug
Shadow Trap target is not announced if the target is the same as previous plague, regardless of the time difference between the two.
This code in DBM-Raids-WoTLK/Icecrown/TheFrozenThrone/LichKing.lua:242
elseif args.spellId == 73539 then -- Shadow Trap (Heroic)
self:ScheduleMethod(0.01, "BossTargetScanner", args.sourceGUID, "TrapTarget", 0.02, 15, nil, nil, nil, self.vb.lastPlague, nil, nil, true)
timerTrapCD:Start()
Sets the last plague target to be filtered out and ignored on trap cast.
To Reproduce
Get shadow trap cast on a person that had the last plague.
Additional context
I understand it's to protect from possibly misannouncing the trap target if LK doesn't switch the target quick enough, but I think the current implementation is doing more harm than good.
I personally deleted the filter completely, but if this protection is still desired, self.vb.lastPlague should at least be cleared on a timer that ensures the current target cannot be the plague target anymore (like 0.5-1s after plague cast or smth, should be good enough and will get rid of at least the vast majority of missed announcements).
the true at end tells it to announce trap target after timer expires if none other was found in that period of time though. is it not doing that?
the filter absolutely had to be there cause it was a frequent problem, like very frequently at least once per pull mis announcing trap on wrong target.and i had users tell me opposite. that it did more harm to announce wrong target than right one just a little slower.
I just carefully looked at code. it sends filterFallback true
which causes target scanner to run this code block
--Cache the filtered target if using a filter target fallback
--so when scan ends we can return that instead of tank when scan ends
--(because boss might have already swapped back to aggro target by then)
if targetname and targetname ~= CL.UNKNOWN and filterFallback and targetFilter and targetFilter == targetname then
filteredTargetCache[cidOrGuid] = {}
filteredTargetCache[cidOrGuid].target = targetname
filteredTargetCache[cidOrGuid].targetuid = targetuid
end
on final scan. and returning that as a valid target and announcing that target.
Ok, thanks. If it's still there afterwards, I'll try to add some debug things and investigate.
I appreciate that, but yeah you see the code intent now, so that helps debug it. it probably wasn't clear before the filter was just a short term one (literally only .3 sec)
That might be what it is supposed to do, but it doesn't work. Everyone in our raid that uses DBM (instead of some WA pack like Fojji) has this issue.
And the message in the latest commit likely explains why it doesn't do what you describe — DeadlyBossMods/DBM-Unified@07988cb
I'm gonna push another attempt to fix issue, the only remaining failure condition is if the lich king is looking at an invalid target at 0.3 seconds (the failure timer) and doesn't schedule a final scan, so it never runs condition for fallback target.
DeadlyBossMods/DBM-Unified@5895b54
but the way it should work, trap scan runs every 0.02 seconds for 0.3 seconds. upon which it should return plague target. it's only supposed to filter the target until scan finish, then fallback to it. hopefully above commit addresses one more potential for failure. beyond that I'm out of ideas cause the code is very explicit in saying "only ignore this target until final scan"