Appel
addon:Widget_UnitWidget(value, units, update, field)
Disponible directement via addon ; aucune dépendance n'est nécessaire.
Ce qu'elle fait
Crée un sélecteur d'unité configuré lié à un enregistrement de valeur de condition. Renvoie le widget, que l'appelant ajoute au parent du rappel de condition.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
self | RMAddon | Instance de l'addon Rotation Master (implicite avec un appel par deux-points). |
value | table | Enregistrement de valeur de condition mis à jour lorsqu'une unité est choisie. |
units | table | Table clé d'unité → nom affiché, présentée dans le sélecteur. |
update | function | Fonction de rappel appelée après le changement de l'unité sélectionnée. |
field | string | nil | Champ de l'enregistrement de valeur à modifier ; unit par défaut. |
Retours
| 1 | RMConditionSelector | Sélecteur d'unité configuré ; ajoutez-le avec parent:AddChild(widget). |
|---|
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
Elle ne lit directement aucune API du jeu.
Comment l'addon l'appelle
- Attaquable (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Hors de portée de mêlée (widget)
parent:AddChild(addon:Widget_UnitWidget(value,addon.units,function() - Amélioration présente (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Temps restant de l'amélioration (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Cumuls de l'amélioration (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Incantation (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Progression de l'incantation (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Temps d'incantation restant (widget)
local unit = addon:Widget_UnitWidget(value, addon.units,
et 52 autres: Incantation d'un sort spécifique (widget), Incantation interruptible (widget), Canalisation (widget), Progression de la canalisation (widget), Temps restant de canalisation (widget), Canalisation d'un sort spécifique (widget), Canalisation interruptible (widget), Classe (widget), Classification de l'unité (widget), En combat (widget), Historique des actions de combat (widget), Historique des actions de combat (temps) (widget), Type de créature (widget), Est mort ou fantôme (widget), Affaiblissement présent (widget), Temps restant de l'affaiblissement (widget), Cumuls de l'affaiblissement (widget), Type d'affaiblissement présent (widget), Distance (widget), Hostile (widget), Est amical (widget), En groupe (widget), Points de vie (widget), Pourcentage de vie (widget), Insensible (widget), Est identique à (widget), Niveau (widget), Mana (widget), Pourcentage de mana (widget), Marqueur de raid (widget), Points (widget), Ressource (widget), Pourcentage de ressource (widget), Alliés à portée (widget), Vie à portée (widget), Pourcentage de vie à portée (widget), Nombre selon le pourcentage de vie à portée (widget), Nombre selon la vie à portée (widget), Mana à portée (widget), Pourcentage de mana à portée (widget), Nombre selon le pourcentage de mana à portée (widget), Nombre selon le mana à portée (widget), Marqué JcJ (widget), Résistant (widget), Rôle (widget), Fuyard (widget), Caractéristique du personnage (widget), A une amélioration volable (widget), Menace (widget), Délai avant seuil de vie (widget), Délai avant pourcentage de vie (widget), L’unité existe (widget)
Source
UI/condition_unit.lua, ligne 23. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
Conditions.common.Widget_UnitWidget(self, value, units, update, field)
if field == nil then
field = "unit"
end
local unit = addon:CreateConditionDropdown()
unit:SetLabel(L["Unit"])
unit:SetCallback("OnValueChanged", function(_, _, v)
value[field] = v
update()
end)
unit:SetDisabled(value.disabled)
unit.configure = function()
local choices=units
local parent=unit.parent
local top
for _=1,128 do
if not parent then break end
top=parent:GetUserData('top')
if top then break end
parent=parent.parent
end
if field=='unit' and (value[field]=='announcementtarget' or top and top:GetUserData('announcementTarget')==true) then
choices={};for key,label in pairs(units) do choices[key]=label end
choices.announcementtarget=L['Announcement target']
end
unit:SetList(choices, addon.keys(choices))
unit:SetValue(value[field])
end
return unit