Custom flags are bouquet validators which accept a user defined anonymous function that returns a boolean value. This allows for any custom condition to be used as part of the evaluation of a bouquet's chain of validators. These custom flag validators can be any valid anonymous Lua function which returns true
or false
.
The VUHDO_unitInfo
table provides the relevant cached information on the subject unit to the anonymous function.
The simple example below returns true if the unit is named 'Ivaria':
return ("Ivaria" == VUHDO_unitInfo["name"])
The follow is a more complicated example which returns true only if the player's spell 'Prayer of Mending' is off cooldown and the unit is below 90% health:
return ((select(2,GetSpellCooldown("Prayer of Mending")) == 0) and ((VUHDO_unitInfo["health"] / VUHDO_unitInfo["healthmax"]) < 0.9)) and true or false;
Another example which returns true only if the unit is currently marked with a raid icon of 'Green Triangle' and also has a custom debuff active called 'Penetrating Cold':
return VUHDO_unitInfo["raidIcon"] == 4 and VUHDO_getUnitCustomDebuffs()[VUHDO_unitInfo["unit"]] and VUHDO_getUnitCustomDebuffs()[VUHDO_unitInfo["unit"]]["Penetrating Cold"] and true or false;
One more example which returns true only if the unit has an active HoT Icon tracking 'Atonement':
return VUHDO_MY_HOTS and VUHDO_MY_HOTS[VUHDO_unitInfo["unit"]] and VUHDO_MY_HOTS[VUHDO_unitInfo["unit"]]["Atonement"] and true or false;
More example bouquets using custom flags of various kinds can be found on wago.io.
Unit information (VUHDO_unitInfo
table):
key | type / value | value description |
---|---|---|
afk | boolean | true if unit is AFK |
aggro | boolean | true if unit has aggro |
charmed | boolean | true if unit is charmed |
class | string | the unit's class name |
classId | number | the unit's class ID |
20 | warrior | |
21 | rogue | |
22 | hunter | |
23 | paladin | |
24 | mage | |
25 | warlock | |
26 | shaman | |
27 | druid | |
28 | priest | |
29 | death knight | |
30 | monk | |
className | string | the unit's class name prettified |
connected | boolean | true if unit is connected |
dead | boolean | true if unit is dead |
debuff | number | the unit's last active debuff type |
0 | no active debuff | |
1 | poison | |
2 | disease | |
3 | magic | |
4 | curse | |
6 | custom debuff | |
7 | missing Buff Watch aura | |
debuffName | string | the most recent debuff on the unit |
fullName | string | the full name of the unit |
group | number | the group the unit is in |
health | number | the unit's current health |
healthmax | number | the unit's maximum health |
isAltPower | boolean | true if unit has an alt power active |
isPet | boolean | true if unit is a pet |
isVehicle | boolean | true if unit is in a vehicle |
name | string | the name of the unit |
ownerUnit | string | unit's owner if pet or vehicle |
petUnit | string | the unit's pet unit ID |
power | number | the unit's current power |
powermax | number | the unit's maximum power |
powertype | number | the type of power |
0 | mana | |
1 | rage | |
2 | focus | |
3 | energy | |
4 | happiness | |
5 | runes | |
raidIcon | number | the raid icon if unit is marked |
1 | yellow 4-point Star | |
2 | orange circle | |
3 | purple diamond | |
4 | green triangle | |
5 | white crescent moon | |
6 | blue square | |
7 | red "X" cross | |
8 | white skull | |
range | boolean | true if unit is in range |
role | number | the unit's combat role |
60 | melee tank | |
61 | melee damage | |
62 | ranged damage | |
63 | ranged heal | |
targetUnit | string | the unit's target |
threat | number | the unit's threat status |
0 | not tanking, lower threat than tank | |
1 | not tanking, higher threat than tank | |
2 | insecurely tanking, another unit has higher threat | |
3 | securely tanking, highest threat | |
threatPerc | number | the unit's threat percentage |
unit | string | the unit ID |
visible | boolean | true if the unit is visible |