AdiButtonAuras

AdiButtonAuras

Display auras, and more, on action buttons.

AdiButtonAuras is a rewrite of Inline Aura, but with different design decisions based on my experience on the latter.

AdiButtonAuras uses a set of rules that apply to one or more spells. Each rule can track an aura on one or more unit and changes the display of the spell accordingly.

AdiButtonAuras has several custom rules to suggest using spells at meaningful times. By default, these suggestions are displayed using a rotary, shinning star on the buttons.

AdiButtonAuras smartly track raid/group buffs: it shows the number of missing buffs and the duration of the shortest one, taking into account equivalent buffs.

Options

Global options

  • do not show flashing border for actions on cooldown (do not affect Blizzard flash),
  • do not show flashing border for actions out of combat (do not affect Blizzard flash),
  • select how suggestions are displayed (hidden, rotary star or flashing border),
  • change the colors of “good” and “bad” borders,
  • tweak the format of the countdown text,
  • change colors of the countdown text.

Spell/item options

  • disable the spell,
  • “promote to flash”: replace any border with the flashing animation,
  • inverted highlight: highlight the spell when it is missing,
  • select which rules should apply.

Supported classes and specializations

Most of the simple buffs are supported through the librarires:

Special cases and hints are handled using customized rules, see below.

There is also a default rule for items not supported by LibItemBuffs-1.0.

Design decisions

Separate button overlays

A separate button overlay is created for each button, with border texture, texts and glowing animation.

Pro: avoid tainting the action buttons, which could cause ADDON_BLOCKED errors. This also reduces complexity, i.e. possibility of bugs.

Con: this does not support skinning (Masque) or custom third-party action buttons (ElvUI). However, AdiButtonAuras fully support Dominos and Bartender4, and should support any addon using the stock action buttons (like Dominos) or LibActionButton-1.0 (like Bartender4).

Hard-coded rules

The rules are hard-coded using a pretty simple Domain Specific Language built on top of Lua.

Each rules specifies the spells to modify, the units and events to watch and one or more handlers. Several rules about the same spell are merged together, or thrown if the character doesn’t know the spell.

Each time one of the event is triggered for one of the unit, the handlers are called to update the state of the associated button.

A set of convenient functions are provided to easily configure most spells. If a more specific task is needed, Lua can be used (see interrupt spells).

Pro: far more powerful than the Inline Aura engine. This allows to show data from one unit merged with the stat of another one, if need be.

Con: there is no way to configure this using a GUI.

No spell auto-discovery

AdiButtonAuras only shows data for existing rules. It does not try to guess what to show.

Pro: avoid showing wrong data.

Con: all spells for all class should be listed.

Using spell ids instead of spell names

AdiButtonAuras uses the spell numerical identifiers, instead of its name, to search for the applicable rules.

Pro: avoid showing information on a wrong spell that as the same name as the intended one.

Con: spells ids are sometimes different depending on shapeshift forms, glyphs or talents. All of them should be listed.

Embedded BugGrabber

BugGrabber is shipped with AdiButtonAuras. You can install BugSack to have a more user-friendly display of errors.

FAQ

When I try to configure a spell, the button is dimmed and I cannot chose it. Why ?

AdiButtons has no rule about this spell. Consider filing an issue.

What do some rules ending with some obscure characters between brackets, like [LPS-DRUID-5.4.1-7] ?

These are references to the libraries AdiButtonAuras used to create the rule.

  • LPS-XXX-A.B.C-N: data from LibPlayerSpells-1.0 for class XXX, patch A.B.C, Nth revision. E.g. “[LPS-DRUID-5.4.1-7]” stands for “rule created accordingly to LibPlayerSpells-1.0 data for druid, patch 5.4.1, 7th revision.”
  • DR-N: DRData-1.0, Nth revision.
  • LSB-N: LibSpellbook-1.0, Nth revision.
  • LD-N: LibDispellable-1.0, Nth revision.

Are you going to support button skinning, e.g. Masque ?

No, unless Masque supports to skin partial buttons.

Are you going to support ElvUI ?

AdiButtonAuras should work with ElvUI. I am not going to support its skin though.

Are you going to add a configuration panel to create custom rules ?

Not in the way InlineAura did it. At best will it support custom rules written in Lua using the DSL (and I make no promise).

Acknowledgment

Thanks to the following people for testing and contributions to AdiButtonAuras and related libraries.

Contributors (in alphabetical order):

License

AdiButtonAuras is licensed using the GPL v3.

Facts

Date created
Nov 03, 2013
Categories
Last update
Sep 01, 2014
Development stage
Release
Language
  • deDE
  • enUS
  • esES
  • esMX
  • frFR
  • itIT
  • koKR
  • ptBR
  • ruRU
  • zhCN
  • zhTW
License
GNU General Public License version 3 (GPLv3)
Curse link
AdiButtonAuras
Downloads
3,955
Recent files

Authors