typicalzergling / vendor

Vendor WoW Addon
MIT License
4 stars 3 forks source link

LDB and merchant button tooltips – often – do not correctly reflect the result of the rules #60

Open tflo opened 1 year ago

tflo commented 1 year ago

I'm observing this, I think, only with a rule that uses the TooltipContains function.

Example:

I have the built-in Sell rule "Low-Level Food" activated. As my toons would get very angry if I sell their beer and booze, I have this Keep rule in place:

TooltipContains('alcohol', 'left')
or (Name == "Mad Brewer's Breakfast")

Often, but not always, the tooltip of the LDB button and also the one of the merchant frame show the drinks (incorrectly) as going to be sold.

However, the icon tooltip of the drinks correctly shows the Keep: Alcohol rule as been applied, and clicking the Sell button does (correctly) not sell the drinks, at least in the cases where I actually clicked it.

If I open the GUI and deactivate/activate the Keep rule, then the LDB and merchant tooltips get updated to the correct info. Also the Matches test in the GUI always shows the correct result.

So, probably just a cosmetic issue, but it is a bit irritating seeing the wrong info in the merchant/LDB tooltips.

– Tom

typicalzergling commented 1 year ago

This is an artifact of our low-priority scanning/loading. For performance reasons not to negatively affect your play, we don't constantly scan the inventory for changes to update a plugin you are likely not even looking at all that closely. Instead we do a low priority background sync several seconds after we notice a change AND if there hasn't been any other changes. Only then do we do a scan and even then it takes several seconds because we are using coroutines which yield often (so it does not affect your game). The result of this is that the data can be delayed. It will eventually update and show the correct data, but we prioritized performance over immediate data.

This is different if you have a merchant open. If you have a merchant open we immediately update, and always re-validate at the time of selling to ensure we have the correct evaluation for when it matters most. Same is true when destroying.

The tooltips on the merchant button and the mouseover of the item in your bag should be correct though as those are high priority updates for those particular situations.

It's possible we aren't aggressive enough, but we erred on the side of performance.

tflo commented 1 year ago

we prioritized performance over immediate data

This is a very good priority, and I totally agree, things like a LDB tooltip really don't need to be updated constantly.

But, as you say…

The tooltips on the merchant button and the mouseover of the item in your bag should be correct though as those are high priority updates for those particular situations

… before clicking the Vendor merchant sell button it would be good to have the correct info in the button tooltip. (The tooltips on icons in the bags are correct for me.) Nobody needs optimal performance while the Merchant frame is open ;)

I mean, nothing really bad can happen, as I always can buy back the stuff. But a side effect of this non-reliable Merchant button tooltip is that I now always, OCD-ish, open the Buyback tab after selling something via the Vendor button, just to be sure ;). Basically the same as if there wasn't any tooltip.