Sorry for being a pest but this falls directly into the scope of an aggro library.
At the moment I have only 2 options:
- write a separate OnUpdate handler (or a separate case in an existing one) in my addon to take care of just this situation.
- distribute a modified LibBanzai-2.0 library with my addon.
None of these options are very attractive obviously.
LibBanzai-2.0 applies a simple and at the same time very clever logic to the aggro problem.
For the benefit of users of the library or BanzaiAlert addon
(not the author who knows the inner workings very well ofc)
what it does in simple words is build 2 lists.
One list of the "good guys" (player, pet, party and party pets, raid and raid pets - and recently focus)
And one list "bad guys" (good guys targets filtering them through the UnitCanAttack api).
It then tries to match "bad guys" targets to "good guys" and gives an aggro update
when one from the "bad guys" list targets one of the "good guys".
This works great for everything except when the focus is a hostile in the current implementation.
Focus being a hostile that is not targeted by anyone in the party / raid or the player,
is a quite common situation in the game.
Every class that uses a focus macro to CC one target while dps-ing / healing another,
will find itself in this situation.
Focus breaks and the hostile targets & runs to the player.
The information is already available at this point to get an aggro warning before it starts hitting on the player,
or someone targets it but LibBanzai-2.0 doesn't use it.
A very simple test case to demonstrate the problem solo is what I described above.
You can use BanzaiAlert to enact it.
1. Focus a hostile: mobA.
2. Target another hostile: mobB.
3. Keep mobB targeted, and approach mobA (your focus) until you body pull.
BanzaiAlert will not warn you of aggro when your focus targets you and even when it proceeds to beat you up,
until you actually target it.
A change like the one I proposed above (or a better one with equivalent result)
will make it so LibBanzai-2.0 will work in this case
(and a couple more complex ones - I don't mention to keep this simple - that it currently ignores)
Is there a chance that this will be added or is it considered out of scope and I should look at my other options?
Quote from RabbitI haven't forgotten about the issue.
I can wait patiently now, appreciated :)