Llamar como
addon:Widget_UnitWidget(value, units, update, field)
Disponible directamente a través de addon; no hace falta ninguna dependencia.
Qué hace
Crea un selector de unidad configurado vinculado a un registro de valores de condición. Devuelve el widget para que quien llama lo añada al padre del callback de la condición.
Argumentos
| Nombre | Tipo | Qué hace |
|---|---|---|
self | RMAddon | Instancia del addon Rotation Master (implícita en las llamadas con dos puntos). |
value | table | Registro de valores de la condición que se actualiza al elegir una unidad. |
units | table | Mapa de clave de unidad a nombre visible que se muestra en el selector. |
update | function | Callback invocado tras cambiar la unidad seleccionada. |
field | string | nil | Campo del registro de valores que se editará; unit por defecto. |
Retornos
| 1 | RMConditionSelector | Selector de unidad configurado; añádelo con parent:AddChild(widget). |
|---|
Ediciones
Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.
No lee directamente ninguna API del juego.
Cómo la llama el addon
- Atacable (widget)
local unit = addon:Widget_UnitWidget(value, Functions.collections.deepcopy(addon.units, { "player", "pet" }), - Fuera del alcance cuerpo a cuerpo (widget)
parent:AddChild(addon:Widget_UnitWidget(value,addon.units,function() - Beneficio presente (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Tiempo restante del beneficio (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Acumulaciones del beneficio (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Lanzando (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Progreso del lanzamiento (widget)
local unit = addon:Widget_UnitWidget(value, addon.units, - Tiempo restante de lanzamiento (widget)
local unit = addon:Widget_UnitWidget(value, addon.units,
y 52 más: Lanzando un hechizo concreto (widget), Lanzamiento interrumpible (widget), Canalizando (widget), Progreso de la canalización (widget), Tiempo restante de canalización (widget), Canalizando un hechizo concreto (widget), Canalización interrumpible (widget), Clase (widget), Clasificación de la unidad (widget), En combate (widget), Historial de acciones de combate (widget), Tiempo del historial de acciones de combate (widget), Tipo de criatura (widget), Está muerto o es un fantasma (widget), Perjuicio presente (widget), Tiempo restante del perjuicio (widget), Acumulaciones del perjuicio (widget), Tipo de perjuicio presente (widget), Distancia (widget), Hostil (widget), Es amistoso (widget), En grupo (widget), Salud (widget), Porcentaje de salud (widget), Inmune (widget), Es la misma que (widget), Nivel (widget), Maná (widget), Porcentaje de maná (widget), Marca de banda (widget), Puntos (widget), Poder (widget), Porcentaje de poder (widget), Aliados dentro del alcance (widget), Salud dentro del alcance (widget), Porcentaje de salud dentro del alcance (widget), Recuento de porcentaje de salud dentro del alcance (widget), Recuento de salud dentro del alcance (widget), Maná dentro del alcance (widget), Porcentaje de maná dentro del alcance (widget), Recuento de porcentaje de maná dentro del alcance (widget), Recuento de maná dentro del alcance (widget), Marcado para JcJ (widget), Resistente (widget), Rol (widget), Huidizo (widget), Estadística del personaje (widget), Tiene beneficio robable (widget), Amenaza (widget), Tiempo hasta salud (widget), Tiempo hasta porcentaje de salud (widget), La unidad existe (widget)
Código fuente
UI/condition_unit.lua, línea 23. Solo lectura en el juego; Duplicar crea una copia editable.
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