Referencia › Referencia de funciones › Core

Core.point_conditions.GetConditionPointResource

pública

Llamar como

addon:GetConditionPointResource(unit, cache)

Disponible directamente a través de addon; no hace falta ninguna dependencia.

Qué hace

Resuelve el selector de recurso de puntos de la unidad seleccionada usando el mapa de clase a recurso en vivo y la alternativa ComboPoints. Una ausencia conocida devuelve false; los datos necesarios de identidad o del selector no disponibles devuelven nil con un motivo. Comparte las observaciones completas de identidad dentro de la pasada de evaluación. Solo las observaciones correctas de la clase del jugador persisten en la caché a largo plazo actual, ligadas a la identidad nativa de UnitClass; la existencia se actualiza en cada pasada. Selecciona un recurso sin leer su cantidad actual ni máxima.

Argumentos

NombreTipoQué hace
selfRMAddonInstancia del addon Rotation Master (implícita en las llamadas con dos puntos).
unitstringToken de unidad seleccionado exacto; solo la clase del jugador puede usar la caché a largo plazo de observaciones correctas.
cachetable | nilCaché de la pasada de evaluación, o nil para observar la identidad directamente. La correspondencia de recursos se resuelve en vivo en cada invocación.

Retornos

1number | boolean | nilSelector de poder entero no negativo explícito, false para una unidad que se sabe ausente o nil cuando faltan datos necesarios.
2string | nilMotivo de política, validación de la consulta o disponibilidad de la identidad o del selector para un selector nil.

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 disponible en esa edición (el motivo aparece en la información emergente)
  • Solo mientras estén activas las alternativas de Blizzard para API obsoletas
API del juegoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
EnumClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valores secretos (Retail y Forever)

En Retail y Forever, el juego entrega a los addons valores secretos. Esta función auxiliar comprueba lo que lee (addon.Platform:CanReadValue) y, en lugar de un secreto que no puede comparar, devuelve nil con un motivo como restricted-value. Trata nil como no disponible, no como falso.

Ejemplo

local power, reason = addon:GetConditionPointResource("player", cache)
if power == nil then return nil, reason end
if power == false then return false end
return UnitPower("player", power) >= 4

Dependencias

Código fuente

Core/point_conditions.lua, línea 58. Solo lectura en el juego; Duplicar crea una copia editable.

Core.point_conditions.GetConditionPointResource(self, unit, cache)
    local platform=self.Platform
    if platform:GetCombatDataPolicy()~='probe' then return nil,'unsupported-policy' end
    if not platform:CanReadValue(unit) then return nil,'restricted-value' end
    if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
    local record,reason=addon.Functions.cache.getCached(cache,pointIdentity,self,unit,playerClassCacheKey)
    if not record then return nil,reason end
    if not record.exists then return false end
    local points=self.points
    if not platform:CanReadValue(points) then return nil,'restricted-value' end
    if type(points)~='table' then return nil,'invalid-point-resource-map' end
    local ok,selected=pcall(function() return points[record.class] end)
    if not ok then return nil,'api-error' end
    if not platform:CanReadValue(selected) then return nil,'restricted-value' end
    if selected==nil or selected==false then
        local enum=Enum
        if not platform:CanReadValue(enum) then return nil,'restricted-value' end
        if type(enum)~='table' then return nil,'point-resource-unavailable' end
        local typesOK,types=pcall(function() return enum.PowerType end)
        if not typesOK then return nil,'api-error' end
        if not platform:CanReadValue(types) then return nil,'restricted-value' end
        if type(types)~='table' then return nil,'point-resource-unavailable' end
        local fallbackOK,fallback=pcall(function() return types.ComboPoints end)
        if not fallbackOK then return nil,'api-error' end
        selected=fallback
        if not platform:CanReadValue(selected) then return nil,'restricted-value' end
    end
    if selected==nil then return nil,'point-resource-unavailable' end
    if type(selected)~='number' or selected~=selected or selected<0 or selected==math.huge or selected%1~=0 then return nil,'invalid-point-resource' end
    return selected

Volver a Referencia de funciones