ClassicWoWCommunity / cata-classic-bugs

This is a place for Cataclysm & Wrath of the Lich King Classic bug reports and research
64 stars 6 forks source link

[BUG] Mind Control combo point interaction #613

Open JamminL opened 1 year ago

JamminL commented 1 year ago

1. Current Behavior

1.1. Description

Needs research still but seems like if you have combo points on a target and that target gets Mind Controlled, if you never untarget him, then you will not be able to see your combo points.

This is probably because combo points update in certain situations, but it's not updating from friendly->enemy events, which should.

1.2. How to Reproduce

       1. Get combo points on a target
       2. Have someone else Mind Control that target
       3. Keep the person targeted until MC is over
       4. Notice how your combo points no longer appear

1.3 Source Material

VIDEO OF BUG HAPPENING: https://streamable.com/5049ip EXAMPLE of when it works properly: https://streamable.com/lezic9

2. Expected Behavior

2.1. Description

You want combo points to always be visible in the UI.

2.2 Source Material

-

XyzKangUI commented 1 year ago

https://wowpedia.fandom.com/wiki/API_GetComboPoints

"GetComboPoints will return 0 if target is friendly or not found" -> This API logic is the reason that ComboFrame_Update function will hide the combo points on friendly (on MC) when a target change / energy update event occurs.

if you never untarget him, then you will not be able to see your combo points.

This is not entirely true. Here you can see the events when combo points update, one of them is while your energy is updating every decisecond. In the 'bug' video the rogue has capped his energy, so there are no events being fired (regardless of the target being friendly).

This leaves the rogue with only one event, which is 'PLAYER_TARGET_CHANGED' to have his combo points re-appear on his current target. This is what you see in the 2nd video, where he swaps from paladin to warrior (who was not mind controlled at that time).

Now there are small nuances compared to the 3.3.5 client. Where as that client used a dedicated UNIT_COMBO_POINTS event, this client uses the UNIT_POWER_FREQUENT which only works while energy is decaying/regening and probably on CP changes like the UNIT_POWER_UPDATE event (must be the reason why premeditation/HaT proc works when energy capped? - tho I see no reason why not to use the more efficient power update event in that case). Can we expect Blizzard to ever bring back old functionality and/or prio bugs that affect PvP more than PvE? Ofcourse not, instead of restoring the original state of the game they are adding new changes.

In conclusion, the issue is the limited API. The events behave as they should. You can conduct the tests by yourself that initially the comboframe wont hide when you are energy capped. It will just not re-appear when you re-target the MC target because the API returns 0. The only way in that case for it to re appear after MC is by spending energy, retargeting, reloading or generating new CP through e.g. premed / HaT proc.

I've already came up with a workaround for this visual issue.