Update ChannelDinger to be a little more reliable

This commit is contained in:
2024-08-24 22:43:21 +02:00
parent 3b6b9995cf
commit 9cb48bd6e6
3 changed files with 29 additions and 24 deletions

View File

@@ -9,20 +9,13 @@ function(e, ...)
if caster == aura_env.player and id == 198590 then if caster == aura_env.player and id == 198590 then
if se == "SPELL_CAST_SUCCESS" then if se == "SPELL_CAST_SUCCESS" then
local finalTick = aura_env.EstimateSemiFinalTick() * 1.06 aura_env.statee:set(1)
if aura_env.ticker ~= nil then end
aura_env.ticker:Cancel() if se == "SPELL_DAMAGE" then
aura_env.ticker = nil aura_env.tick:set(aura_env.tick + 1)
end
aura_env.ticker = C_Timer.NewTimer(finalTick, function()
WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg")
end)
end end
if se == "SPELL_AURA_REMOVED" then if se == "SPELL_AURA_REMOVED" then
if aura_env.ticker ~= nil then aura_env.statee:set(0)
aura_env.ticker:Cancel()
aura_env.ticker = nil
end
end end
end end
end end

View File

@@ -1 +1 @@
!DBvBVPUnu4)linj62Agq7TBDs7dPPHEBfnWWHwnPkNysCaVgSr2o9wUAk)23XojqAlSlAAFAcuuYX(8QFo(8G7JdXOvyuQ5p8QOqNZ4umA8SWr3g4JrzcUgX(kfh0FagPfjVqLkMGJd(5EN1Rhg964SmfvJdG3tzQ15KnH0x1y03TgJ20ArcpzPqorW4WIE(bH(tXOcg46ExozZk3q1e3ZXOerUqcXsqF7)b2NNzFEU5jOCsHslwz8YS1PeneU0xOgRska5enl5rwQEjg5cFdst0qaRm5NstKA4fyVzmotT0kuuWHO4wUMkZij0NCtthZvp9iL8SBHKOE6EAkJ8eYSp1ttfZf6RYzRDelwa5SiQYaZnwfmQX(gPvrj(QM41eEsseL)IJMTIklJ)TY4EL3TtQqtYdzjpRSl9PwlzQQ1Amd8WnZU96UDQe25KY7kVlRGBZYY4T64Ra3avhpIshcoSRzJXv)YfjK8Y4LWsuRvVHQ9eRMt0tHYhFXvcEHQ7GETu50tlJVOmMbbNEjO0CIcEMawaeaMVmwKvgNkjmiiGks(ovLuDHKBv)NkJ72Vm(h26Bqq)Eg)q5PFJebrxXgY4v1O9Knj1jQnHoQYqtG1DNQMaCpNiNCsz833YQTpRGct)64hGaaiqlzlwaTjvO4WTcSVUznDhIqvm3cDrfzzSxXOipxuyek0DA4wq9NPKCdyUzVtKu7Ert8hncqA05GYHwZ(z)rtgodewyGHOkaYoVzoc9gF)vUHrJgFtK)dqty0SGH3oc6f9VExXVl9hlJDCC(ynwzwHkRGIEJ8NnHivuPdGFq1Xx33QilRwHY)cuHZYT4h(UIF1b)hpkPYd7krHmHA7c(pWzS0d7O1088Bt)35L3S)QmcCrBSztBnb2pegvR2)YF5tx2R2KBTrBBzA8m7SJfcuJzM555JqDoKEVlNZA6J2FZY7B1my)(o9U4W21exTUFl5z6hRphu5MFVZa)QhmZGM3UJ9i10MvghFqfFdq4ySMxK5ccPta9l2x6UTecONTnohrOUDSIdkHW9nTmQUDMmY9pIGXUbx3bSxNDdJAMg1ACu98OMbsVDIuNt(ht69S6Elf7bN5oBQB0u)7h)G)1FtC2)lWdVrO9dQHPaNSIQQyruD1Au1T61xyRQU0OEhwHkGXZHV4DRzwYsbZyMMMAuTGVBWHDWIHjZl0WkH3lGnhCA)EMvK0fa8RAkG2s)Izqqac9Hg(AdUaJ(tWpSSny0i)HHgkzMUDZQT4gHsHANryDwPOjcaM1m6Ila(HG9xbd6p(DVJT1rTFt8dfAVLeoNMFnWiXohtWZylQPVjHdbyWkrtmdzRzxo0iTQkG8M67hy5eclmEDdhqDfNwmAOK91Y4FVGKAmszCyO1dPSw7eM5o1wzR)(lcz6JscWS9XTVbdJPPveodgyyeNliwY0aoiXYVUixZAoctYjk1hKQmmSFNqJyAEwnH5Rghgo(ERqmAGt)lCodJEbs9Zhy4eJ)7 !TAvFVjUny8VlrAsCAxraTRB9KU)ifs71kiWWHwDsitCtCaVlyJSD6vonLp77X2j8wPSQBtGICEE)f)8lp424imAjgLA(dhff6CgNIrdNe1)UWamktW1i2pO4W2DWiTi5zQuXeCC4V368wTWOxgMLPOACiCoLPwLtwhrFrJr)YkmA9omL05GErRxbMxBLOGb(T1vJwV0psnY)cmkrKlKqGe22(VJ9552NxymcOusHslwACXKvPenym6ZuoWGua0jAwYJSu9cmYhEhOMObVQmjNstKA4ailJZmNqPIzo7HVU2YgdjjZO8NBQzlPYY4pxg3Q8(TufAsEel5BklRl3HLj5R0yc4HBNCxVgEoIEFyxtaABLAm1eFptFGKxqBYPFVrRDLdIynLEcjp7SYyezDZMnDNBvgdp5co19EB77jliCofASZDu7yPMtuABGC)R84Ne8UGoZPnYk42cydWJwEGtlJD)mMALKX1n8Q5wg7bHs8reMLTLmKqF2gB6fu(wroIDLu42J2e4XMqv59Hxl(Ev1pbYBRm1CP80tfeDERG4rk5B(GLvnrjeEG5kMQH3O((FDgmCe2Z7JqUEhxtLzKe60P(PPd5QPt3O30PdOPmY0PWqfpfEDS4jH(6C2QMI5Z9omeHhhEd5iDbBr44TaT7gPxzSPdCOGMmVsctAF0lZNDIEYHxqmL5ohphmZxzWaMAHDOZK9y02kvvHABDYvMQQs7vKSZNod8eyvWUAjB(CaaYbreTHG9OfzPEiwv8KfxavKLXEbJM11hfndf5poAdIXxOKCdsrTSJKuRSOrb97xBQzlyPgelaliTstfg1D4GR9JM1F4TZcEiimA2KWBURFuW4GEG9wrZZVlv5WAQJitV6eQvE)MUm9JMMyZDkV5IesEzSYWHkDimD7hmzerQOYM3sH80Ldn2xrtF3Qq5FdQWz5vn4yjvxi5hmFu5MeazGkFBxjkKjul42)doJL(2oYvh)58YEY7YOdU7xJwta5HWOcv6Q)43UQ1BngySLQc6WZEnP6E1KUDdqiV3sVtng1(iyA7vOoHZ75pW)2G3VB3arEWNI(viX)peg(tg7pBCWGHpe07NQg06FZ514lBMkDt7vdYCYsA10wH5l7ixRfWpOpbZ)UDo(sq)r3mPVtOT4gwCf33wJCehiGb(WZABx3GWtwiKJemJF6cJSbJnRpa3M4K8hQ3fQZLy0FbbglBng1p4MiJImZ2ia3Dw9OcKY8bAi4GcHrGQCrrteaeOXPljm(7x6TGTVl5nR)a1XUULc6bFC1uPaUzS5UAyMeQNa0krtmWSv1GBmuDLsu3XbbH2vUagdxvVIL2TVigDJK9JY4)SGKAmszCuKjmFHM62nlSJzZra2DSDNWkv)UqM(OKaRn(4MtMGMTJ5Zfe7IQaeBID31ICnRUlMaR0OEfvLz71diAitZZQARxpmkA4alrmQtZ2x28Cm6zi1VOtBGk(F(

View File

@@ -1,14 +1,26 @@
aura_env.timer = 0 aura_env.timer = 0
aura_env.totalTicks = 5 aura_env.totalTicks = 6
aura_env.player = UnitGUID("player") aura_env.player = UnitGUID("player")
aura_env.tick = ReactiveValue.new(0)
aura_env.statee = ReactiveValue.new(0)
-- Say...
-- 0 - none
-- 1 - channeling
-- 2 - lasttick
function aura_env.EstimateCastTime() aura_env.statee:onChange(function(newstate)
local haste = GetCombatRatingBonus(20) -- print("newstate ".. newstate)
-- 6 is the base cast time of drain soul if newstate == 1 then
return 6 / (1 + haste / 100) -- print("resetting ticks")
end aura_env.tick:set(0)
end
function aura_env.EstimateSemiFinalTick() if newstate == 2 then
local castTime = aura_env.EstimateCastTime() WeakAuras.ScanEvents("PLAY_SOUND", "Interface\\AddOns\\WeakAuras\\Media\\Sounds\\RobotBlip.ogg")
return (castTime / (aura_env.totalTicks)) * aura_env.totalTicks - 1 end
end end)
aura_env.tick:onChange(function(ticks)
-- print("ticks " .. ticks)
if ticks == aura_env.totalTicks - 1 then
aura_env.statee:set(2)
end
end)