So, here's what I've got so far.
(It took a time... I know... I was just lazy and didn't do any research or test for a week
)
According to the log that semlar had provided, the first tick of poison bomb normally occurs about 0.5 seconds after either by envenom or rupture cast.
Here's the calculation that I've done with that log.
Code:
00:00:06.778 Rupture
00:00:07.332 Poison Bomb +00:00:00.554
00:00:07.817 Poison Bomb +00:00:00.485
00:00:08.319 Poison Bomb +00:00:00.502
00:00:08.838 Poison Bomb +00:00:00.519
00:00:09.317 Poison Bomb +00:00:00.479
00:00:09.827 Poison Bomb +00:00:00.510
00:00:26.173 Envenom
00:00:26.741 Poison Bomb +00:00:00.568
00:00:27.221 Poison Bomb +00:00:00.480
00:00:27.704 Poison Bomb +00:00:00.483
00:00:28.240 Poison Bomb +00:00:00.536
00:00:28.721 Poison Bomb +00:00:00.381
00:00:29.223 Poison Bomb +00:00:00.502
00:01:11.232 Envenom
00:01:11.779 Poison Bomb +00:00:00.547
00:01:12.265 Poison Bomb +00:00:00.486
00:01:12.792 Poison Bomb +00:00:00.527
00:01:13.326 Poison Bomb +00:00:00.534
00:01:13.770 Poison Bomb +00:00:00.444
00:01:14.289 Poison Bomb +00:00:00.519
00:01:18.972 Envenom
00:01:19.507 Poison Bomb +00:00:00.535
00:01:20.013 Poison Bomb +00:00:00.506
00:01:20.491 Poison Bomb +00:00:00.478
00:01:21.004 Poison Bomb +00:00:00.513
00:01:21.503 Poison Bomb +00:00:00.499
00:01:21.991 Poison Bomb +00:00:00.488
00:01:41.702 Rupture
00:01:42.270 Poison Bomb +00:00:00.568
00:01:42.739 Poison Bomb +00:00:00.469
00:01:43.242 Poison Bomb +00:00:00.503
00:01:43.765 Poison Bomb +00:00:00.523
00:01:44.261 Poison Bomb +00:00:00.496
00:01:44.761 Poison Bomb +00:00:00.500
00:02:35.440 Rupture
00:02:35.972 Poison Bomb +00:00:00.532
00:02:36.499 Poison Bomb +00:00:00.527
00:02:36.975 Poison Bomb +00:00:00.476
00:02:37.474 Poison Bomb +00:00:00.499
00:02:37.967 Poison Bomb +00:00:00.493
00:02:38.480 Poison Bomb +00:00:00.513
And here's the most cheaty way that I could think of...
Lua Code:
local finisherTimeStamp;
local f = CreateFrame("Frame")
f:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED")
f:SetScript("OnEvent", function(self, event, ...)
if event == "COMBAT_LOG_EVENT_UNFILTERED" then
local timeStamp, subEvent, _, sourceGUID, _, _, _, destGUID, _, _, _, spellID = ...
if sourceGUID ~= UnitGUID("player") then
return
end
if subEvent == "SPELL_CAST_SUCCESS" and (spellID == 32645 or spellID == 1943) then
finisherTimeStamp = timeStamp
elseif subEvent == "SPELL_DAMAGE" and spellID == 192660 then
local timeStampGap = timeStamp - finisherTimeStamp
if timeStampGap >= 0.4 and timeStampGap <= 0.6 then
print("POISON BOMB!")
end
end
end
end)
This is working fine against single training dummy. And since semlar had confirmed that the single poison bomb pool works equally against multiple targets even if they jump in late, that's not a problem. However, in case if I'm in raid or mythic+ where I could fire those finishers fast enough which didn't even spawn new poison bomb pool, but has a time stamp gap between 0.4 and 0.6 with existing pool's damage tick...
Like semlar questioned, spawning two overlapping pools are pretty rare cases, but still possible and sometimes it's quite easy to observe especially when encountering bosses or large number of trashes. However, since the poison bomb is not visible by other group members (especially by TANKS) lots and lots of pools are wasted and ultimately you'll lose tons of DPS which depresses me playing Assassination rogue
I wish WoW Dev team to revise such spells and make it more flexible (or visible) so that it could be easily tracked with Lua.