Ovale Spell Priority

Ovale Spell Priority

6M Downloads

the problem of entering the battlefield and the arena

fwater opened this issue ยท 4 comments

commented

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

commented

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.

commented

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

  1. remove if maxPower == 0 then condition block
  2. add not UnitInBattleground("player") and not IsActiveBattlefieldArena() to condition to block it in battle grounds / arenas
  3. 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

  1. is less optimal like @Ophidon said
  2. 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
commented

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.

commented

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.