dfherr / ThreatClassic2

A simple threat meter for WoW Classic & TBC Classic, successor of ClassicThreatMeter.
33 stars 18 forks source link

[REQ] Allow multiple windows to be shown for multiple targets #125

Open chad-hine opened 2 years ago

chad-hine commented 2 years ago

What is the feature you would like requested?

As a tank that sometimes has to tank more than 1 target, I'd like to be able to see my threat on multiple targets without having to switch targets, along with who is 2nd and 3rd on threat. If it is another tank, then I don't care if I lose agro. If it's a dpser, I can warn them on discord. If it's a healer, I can switch to that target so they don't die. I use threat plates, which helps, but being to see multiple ThreatClassic2 frames simultaneously would be much better.

Ideas I had for implementation:

  1. Before the pull, having multiple TC2 frames open and being able to lock the target to a particular window (i.e., the target doesn't switch for that TC2 frame).
  2. Automatically expanding to show multiple TC2 frames based on which targets have the most threat (with a limit for when tons of adds spawn).
  3. Splitting the current TC2 frame into sections that shows up to a number (3, 4, 5?) of mobs that I hold the most threat on along with the top 2-5 other threat holders.
dfherr commented 2 years ago

I can not really see how this can be practically done. The only practical option I can imagine is adding an additional focus target frame. I'm not sure how much effort it is to implement that tho. TC2 code is strictly focused on a single enemy with a few global things that will totally break on multiple enemies.

chad-hine commented 2 years ago

When I peeked at the code, I saw the same thing, it is definitely focused on 1 window frame. But the data must be there because if I switch the target, it has all the threat data for the new target. I was hoping it wouldn't be hard to create a second frame to display the data for a different target. I'll give a crack at it myself to see what I can do. The code is extremely clean and easy to follow compared to most addons. I'll let you know if I get anywhere with it.

Gearslinger commented 2 years ago

Well, since Chad-hine hasn't responded since Nov. 5, 2021... I'm guessing he didn't get anywhere with his idea.

Probably better to just keep it all in one window instead, but with more than one target listed and listed in descending order from the greatest threat to least and who those mobs/adds are targeting.

chad-hine commented 2 years ago

I actually got it working exactly as I was expecting. But, I found it way too confusing to keep track of. They way I did it was I had multiple windows up. I added a "lock on target" button in the header. Before the pull, I would look each window on a target so that no matter who was currently targeted, I could see the threat on the locked on mobs. It seemed to work fine, but was too cluttery and confusing. So I gave up.

chad-hine commented 2 years ago

As Gearslinger suggests, a single window with multiple mobs listed would be much less confusing. I didn't attempt that.

anzz1 commented 1 year ago

If you think about this from the perspective of who wants to know and what, I think a simple way could be to just have 3 different window options: target, lowest threat, highest threat. Which could be then mixed and matched depending on what information is important. So a tank would probably like to know the target threat and also where his threat is lowest. While a dps or a healer wants to know target threat and the highest threat. So it would have max 2 mobs, not confusing, but also be more informative than only the target's threat window.

Expanding on this further with multiple mobs, a single window could accommodate X blocks/sub-windows which could represent a table of units sorted in ascending or descending order of threat. So for the sake of example, let's say X = 6 , it would basically be 6 threatmeter windows (inside 1 window) ordered like this: 1-2-3 4-5-6

And by shifting these blocks in order of threat and dropping them out when the units die I think it could be pretty intuitive and not get too confusing to look at.

Maybe even use a color scheme to see the situation at a glance, like the blocks would go green->yellow->orange->red so you could see when the blocks (representing units) are getting "hot"

anzz1 commented 1 year ago

But then again, I really like the simplicity and light weight of ThreatClassic2, as bloat and feature creep is a real problem in many addons. I prefer to keep my fps, thanks :D.

And that idea with more windows would definitely have a performance impact. The multiple changing ones, I think should have an sliding animation of some sort instead of instantly blinking between places, which would further hurt performance.

But that obviously could be implemented as a choice, where the extra features are not instantiated if not used, so no performance unless you want to use them.

In any case, the effort required to implement this feature would require non-insignificant amount of effort.