the problem of entering the battlefield and the arena
fwater opened this issue ยท 4 comments
When you enter the arena, if you do not RELOAD, Ovale will go wrong. ComboPoints and holy_power and others unable to be judged .
or when you dead it goes wrong too
you must reload
It's been a while since I've corrected this in my own copy but I had exactly this issue with needing to reload in these situations as well since 7.3.9-alpha.
I believe commenting out this section from 379 to 382 in power.lua is what I did to correct it:
if maxPower == 0 then
self.POWER_INFO[powerType] = nil
UnregisterRequirement(powerType)
end
I believe this section is attempting to clear out powertypes that your class/spec has no need to check, which is a good thing. However, maxPower is sometimes incorrectly temporarily 0 for power types you DO need, when certain situations occur like zoning in/out of bgs.
It's not a perfect solution as it will cause a (seemingly quite small) amount of more overhead by not clearing out irrelevant power types, but I hope this or something more perfect can be added to the official build, as having to very frequently /reload is EXTREMELY annoying.
I was checking this issue yesterday and yes that is the problem when you enter BG UnitMaxPower() returns 0 ( seems like it is only arenas/bgs )
there are few ways to fix it
- remove
if maxPower == 0 then
condition block - add not UnitInBattleground("player") and not IsActiveBattlefieldArena() to condition to block it in battle grounds / arenas
- remove
if maxPower == 0 then
and add predefined table with powerTypes per class in constructor
I still need to check 2. already tested 1. and 3. and they work
- is less optimal like @Ophidon said
- is little ugly but has same functionality as current version and there is no need to check
if maxPower == 0 then
on every UNIT_MAXPOWER event
As I said it has been months since i corrected this for 7.3.9-alpha, but I -believe- this could also occur when joining an automatic queue pve dungeon. I don't think it for the non-queued variety, however.
Just mentioning as if the above is true, your option 2 might not catch all the occurrences.
Edit: I think it might have just been timewalking dungeons even? Not sure how/why they would be different though. Anyway, my vote would be for a static solution more like the third that isn't really vulnerable to any missed situations.
Classes like druid might still have a -tiny- bit of overhead always having to keep mana/rage/energy active regardless of spec, but overall it shouldn't amount to anything compared to the massive reduction in aura tracking that has been done.
I personally never experienced it as I don't do BG/Arena, that's why it wasn't fixed earlier.
But I will go with 3 as it is safer to just declare what your class can use
Edit: About Druid, you have 4 powerTypes as druid in any spec due to Affinity talent and UnitPowerMax() returns max > 0 for all of them in any spec.