Closes#75
Refines the logic for handling missing talents in WeakAuras.CheckTalentByIndex.
Now returns true if a specific talent doesn't exist, but talents are selected.
More a band-aid, but the cleanup function and handling when switching tabs doesn't exist.
This change reintroduces FRAME_UPDATE for units not in multiUnitUnits (e.g., player, target) to ensure smooth power updates, similar to UNIT_POWER_FREQUENT in retail. The new logic tho avoids registering other unit events when FRAME_UPDATE is used, improving performance and preventing multiple updates per frame, than before.
- Closes#37
Due to an error in the implementation of Class & Spec in Load Conditions and Triggers (Unit Characteristics, Power, Health, Class/Spec, BT2 actualSpec), the system now also applies Retail logic.
As a result of this issue, all data has been erased and must be reselected.
The login message was triggered incorrectly due to the "Beta" tag in the version string. This has been fixed.
Almost completely removed due to impracticality with the 3.3.5a API.
When RAID_ROSTER_UPDATE or PARTY_MEMBERS_CHANGED fires, data is unavailable for ~1.5 seconds.
If these events fire again within that time, the timer needs to be restarted, leading to excessive code complexity and requiring handling for every edge case.
Instead, we now simply check if the unit has changed when the library fires its callback.
- **WeakAuras.SpecForUnit(unit)** = Returns: `classFileName..spec`, `Dominant Tree`, `spent1`, `spent2`, `spent3`
- **WeakAuras.GetUnitRole(unit)** = Returns one of: `"melee"`, `"caster"`, `"healer"`, `"tank"`
- **WeakAuras.SpecRolePositionForUnit(unit)** = Returns: `Dominant Tree`, `spent1`, `spent2`, `spent3`
- **WeakAuras.CheckTalentForUnit(unit, talentId)** = Returns: `"Points spent"` in talent or `nil`
- **WeakAuras.CheckGlyphForUnit(unit, glyphId)** = Returns: `true` if the player has the glyph associated with `spellID` or `spellName`, we can only see the glyphs of players running `LibGroupTalents-1.0`