ThreatClassic2

ThreatClassic2

10M Downloads

[REQ] Option to display current tank as a fixed 100% threat value

karai17 opened this issue ยท 11 comments

commented

Currently, the value of 100% is given to the person who has the most threat, not necessarily who is holding aggro. This causes a bit of a headache when trying to figure out how close you are to pulling aggro because the percentage values shift. If I am a rogue, I want to know if I am sitting at 109% threat relative to the tank, not if the tank is sitting at 92% or so threat relative to me.

My assumption of the following option was to do exactly what I stated above:

image

From what I've tested, this option doesn't seem to do anything at all, there is no difference in how threat is displayed whether it is enabled or disabled, again, as far as I've tested.

commented

I think you're mixing a view things up and draw wrong conclusions.

Currently, the value of 100% is given to the person who has the most threat, not necessarily who is holding aggro

no this assumption is incorrect. The person who has aggro is 100%, not the person with the most threat. If you do not check the raw threat option, you will gain aggro at 100%. You might see something like Tank at 10.000 threat 100%, next person at 10500 threat 95%. Because he needs 5% more threat to gain aggro (i.e. go over 110% threatvalue of the tank). This is the default threat percent output of the Blizzard API as it's available in retail.

this option doesn't seem to do anything at all, there is no difference in how threat is displayed whether it is enabled or disabled

there might be a bug there, but as I stated above all this option does is change the percentage value not the raw threat number. In the example above the list would now look like this: Person 1 at 10500 threat 105%, tank at 10.000 threat 100%. The ordering is always based on the percentages. If you find that this is not the case, there might be a bug. Screenshots or even better videos are highly appreciated so I can see the issue.

To make things a bit more complicated. The active tank is only an assumption based on the current threat numbers and the current target of the boss. Furthermore, the range modifier is not considered at all, but all players are assumed to be in meele range due to technical limitations that prevented me from implementing a fix for this. So, you might see people with the highest threat incorrectly shown as the active tank. However, that should be the exception with either a range player being in the 110% to 130% threat range or a player with more threat than the tank being targeted by the boss without having aggro.

To make things even more complicated, threat numbers are delayed, because they have to be send between players via chat messages and the amount of messages I can sent is limited by blizzard. If I sent to much the delay gets larger and larger.

Luckily, these problems go completely away once the threat api is reenabled with the AQ40 patch.

commented

Well, I believe the bug you stated is the entire point of my issue, no? Whether that checkbox is enabled or not, Threat % never exceeds 100% and that 100% is not always the active tank. If the intent of that checkbox is for the active tank to hold a 100% threat value, which is what I am requesting in this issue, then it's not doing that as far as I can tell. If this isn't a feature request, then it's a bug report.

My expectation, whether by default or via an option, would be for the active tank to hold a fixed 100% threat and anyone who goes above that is at risk of pulling, either at 110% or 130%, depending on their proximity. We don't really need to know or care about their proximity though, only the numbers, as they should be ordered by % and the game itself knows when a hunter or a warrior pulls aggro (and the addon would then set them to 100% and recalculate the %s for everyone relative to them). The individual player who is at risk of pulling aggro, since they are the player and can do a distance check, could have an indicator warning them to slow down, but this isn't really important for raid-wide display.

[SomeHunter           1250   125%]
[SomeWarrior          1070   107%]
[SomeTank             1000   100%]
[SomeRogue             850    85%]
commented

If the intent of that checkbox is for the active tank to hold a 100% threat value

no, that's not at all the intent of this checkbox. The active tank has always 100% threat value regardless if the checkbox is checked or not. The only difference is that the percentages of all other players are calculated against the threat necessary to pull aggro (10% higher than tank, unchecked) or against the raw threat of the current tank (checked).

My expectation, whether by default or via an option, would be for the active tank to hold a fixed 100% threat

This expectation is the implemented logic for regular and raw percentages.

and anyone who goes above that is at risk of pulling, either at 110% or 130%, depending on their proximity.

the default (and Blizzard default) is that anyone who reaches 100% will pull aggro and the API calculates their proximity in this percentage for them. With the checkbox enabled it is exactly as you describe. You basically handle the proximity yourself instead of automatically calculating that in so pull aggro = 100%.

the game itself knows when a hunter or a warrior pulls aggro (and the addon would then set them to 100% and recalculate the %s for everyone relative to them).

The game knows it, but the addon doesn't. The addon can only guess based on the information it has. And that is the bug I explained above. That bug isn't fixable for me, but will luckily be fixed by the reenabled threat API (in a few weeks with AQ40 patch 1.13.15) that tells me exactly who is the current tank instead of having me guess it.

Whether that checkbox is enabled or not, Threat % never exceeds 100% and that 100% is not always the active tank.

with the checkbox enabled threat should be able to exceed 100% and at least for me it also does:

image

And without raw threat enabled:

image

Notice the raw threat value. My warlock has actually 4 threat more than the imp, but he would need 46 threat to pull aggro. That's why he is displayed below the active tank and 99% threatpercent.

However, for ranges between 110% and 130% the active tank is no longer correct for the reasons I explained above (also again, this will be fixed with the 1.13.5 patch). But that should be the exception unless you have very weak tanks and very strong range dds.

commented

I'll have to look into it more. I tested that checkbox and it didn't seem to make any difference to how threat was being displayed. That first screenshot is exactly what I am looking for, so I suppose I'll have to retest it. Thanks~

commented

Maybe one more bit of information:

You're correct that I can detect the proximity of the player itself. However, to correctly calculate the active tank I need to know the range of all possibly tanking players (basically all within ~25% range of the top) and I do not have access to this information. I did plan to let players send their proximity to other players via messages, but as the addon is already pushing the limits for just sending threat I never went through with implementing this additional traffic.

Since I do not have the proximity information of other players, I just assume all of them are in meele range. Now when a player in range has 111% threat, the addon considers him the active tank, sets him to 100% and a buggy display occurs. This is a known issue, but it will go away with the reenabled Blizzard API, because it does the range checking for me.

commented

With the new Threat API, will you be able to reduce the amount of traffic? If so, you could probably sneak in something like "assume everyone is within melee rangle unless they send reports stating that they are not" to have a variable, but reduced amount of traffic coming from roughly half the raid only.

commented

With the threat api there is no more traffic. https://wowwiki.fandom.com/wiki/API_UnitDetailedThreatSituation

commented

Because I decided it's better to handle everyone the same (i.e. consistent display across all party members), rather than introducing discrepancies by handling meele range only for the player himself.

Also being in 110 to 130% aggro range is generally an unsafe endavour.

commented

After doing some more testing, it would seem that this feature is generally inconsistent. Testing on my Hunter, I've been sending my pet in to grab aggro and holding off on attacking for a second or two. As my threat increases, I'll see both my threat go above 100% while my pet maintains aggro, and other times top threat fixes at 100% while aggro is being held by my pet.

image

image

Both of the above screenshots were taken within about 45 seconds of each other with no settings changed, just fought two mobs and my pet was tanking during them.

image

Edit: With a bit more testing, what seems to be happening is that once the threshold passes 110% regardless of my class or distance, it assumes I have aggro. I suppose this will generally be fixed with the Threat API?

commented

I'm not sure if you can follow what I told you. But this behavior is as expected and consistent considering all the circumstances I outlined above.

You are considered tanking, if your threat is 10% higher than anyone elses and then your threat will automatically be set to 100%. The 110% to 130% levels of threat for ranges are effictively not working due to restrictions in the game client and will be fixed with the 1.13.5 patch reenabling the API and removing the restrictions.

commented

Yeah, I just wasn't quite sure why it was broken for 130% on personal threat (I understand why it's difficult to do that on other players). If it's gonna be fixed on the 28th for everyone, that's good. :)