The seven default data objects, configured using Fortress to look like OnScreenHealth
Text health and mana bars, a la Aranarth!
Broker MiniHUD
Broker_MiniHUD is a highly flexible, extensible, text-only HUD that uses LDB for output.
Broker_MiniHUD was inspired by OnScreenHealth (authored by the incomparable Phanx), and grew out of my desire to have something that did about the same thing, but used fewer system resources. I'd been wanting to learn Lua and write an addon for a long time, and this seemed like the perfect way to get my feet wet.
Please note: You will need an LDB display addon to make Broker_MiniHUD work at all. Due to its beta state, I've only had time to test it with Fortress, with which it works well. For now, I recommend using Fortress with Broker_MiniHUD, but I welcome reports on how it works with the others, like Wraith, ButtonBin, etc. I'll make every reasonable effort to ensure compatibility with all LDB displays.
You probably would like to free-position your Broker_MiniHUD objects so that they act like a real HUD, so it is not advisable to use strict bar-only LDB displays like Titan or (FuBar w/ Broker2FuBar).
Out of the box, Broker_MiniHUD implements 7 data objects:
Player Health
Player Mana
Pet Health
Pet Mana
Target Health
Target Mana
Target Combo Points
After you install Broker_MiniHUD for the first time, you will need to customize it to your liking by dragging the frames to where you want, sizing them properly, and setting your desired font.
Making your own Data Objects
Broker_MiniHUD's displays are generated by a simple tag library (is that an oxymoron?) of my own devising. Each data object has an associated "tag" property which is parsed into a value, color, and format. A tag takes the following form:
VALUE:COLORER:FORMATTER
...where COLORER and FORMATTER are optional. Further, each component takes this form:
Function[([arg1=value1] [, arg2=value1] [...])]
An example of what a tag looks like: "UnitHealth(unit=player):HealthColor:RawValue" This tag calls the UnitHealth value function with "player" as the "unit" argument, passes that value to the HealthColor colorer function, and then passes the color and value to the RawValue formatter, which simply displays it as-is.
This might sound complicated, but if you look through the definitions of the objects that ship with Broker_MiniHUD, you will get the hang of it pretty quickly.
Current built-in tag functions
Notes: "unitid" below should be replaced by the Unit ID (player, target, pet, party1, etc.) you want a value for.
Values
Name(unit=unitid)
Health(unit=unitid)
Mana(unit=unitid)
ComboPoints(unit=unitid)
PlayerXP
InCombat(unit=unitid)
SimpleText(text=value) - Displays a static message
Threat(unit1=unitid,unit2=unitid) - Gives scaled threat for unit1 on unit2, i.e. "Threat(unit1=player,unit2=target)" gives the player's threat on the target mob.
Colorers
ReactionColor - Colors according to reaction. Requires the value function to have contained a "unit" argument.
ManaColor - Requires the value function to have contained a "unit" argument.
HealthColor - Requires the value function to have contained a "unit" argument.
ComboPointColor
NamedColor(color=value) - where value is one of: Blue, Red, Orange, Yellow, Purple. Yes, there will be more colors later.
RGBColor(r=value,g=value,b=value) - where r, g, b are a value between 0 and 1.
Formatters
CurMax - Displays a current/maximum format, i.e. 456/1000
RawValue- Simply passes through the value. Is default; can be omitted.
Percentage - Displays in a percentage remaining format, i.e. 45%
Bar(length=value,char=value,lcap=value,rcap=value) - Displays a text bar. All arguments can be omitted. length is the number of chars the full bar is made out of, char is the actual character to compose the bar out of, lcap and rcap are the characters to put at the start and end of the bar.
Flag(char=value) - Displays a one-character flag if the value is 1, or hides it if it's 0. The value function must return 0 or 1. Currently only works with InCombat. char changes the character that's displayed; it defaults to "+".
FormattedValue(format=value) - Formats the value with a Lua format string. example: "FormattedValue(format=%u)" would display the value as an integer (no decimal places.)
TO DO LIST:
Implement data object delete/rename
More built-in data value sources
clickable data objects (for click-casting, etc.)
click-thru data objects
(possibly) IncomingHealsLib support
documentation on how to extend Broker_MiniHUD
Change Log - Broker MiniHUD
12/15/08 1:11PM PST
* Fixed a bug in ReactionColor that caused all reaction colors to be yellow.
* Fixed a bug where an exception was thrown if the formatter argument was left out of a tag
Beta 2:
* Implemented an options UI. It's kinda half-assed. No delete or rename at the moment, and we could use some help text in there too. It'll get better, but for now you can add and edit data objects ingame.
* Implemented a tag-based value system. Hopefully it's understandable and easily used. Need feedback here more than anywhere else.
Optional Files - Broker MiniHUD
Sorry, there are currently no optional files available.