Referencia › Referencia de funciones › Core

Core.threat_count_conditions.GetConditionThreatCount

pública

Llamar como

addon:GetConditionThreatCount(minimum, cache)

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

Qué hace

Cuenta solo las unidades indexadas por GUID que ya están en la instantánea de pertenencia observada. Verifica la identidad del token actual antes de usar el observador de amenaza publicado; los tokens que se sabe que están ausentes o reutilizados se excluyen sin añadir sustitutos. Las observaciones completas de identidad y amenaza solo comparten la caché de evaluación proporcionada, mientras que la pertenencia se recorre de nuevo. La amenaza de no enemigos conocidos o la amenaza opcional nil no se cuentan; los datos necesarios ilegibles, mal formados o fallidos dejan todo el resultado sin disponibilidad. No enumera una lista completa, no aplica un filtro de alcance ni modifica los registros rastreados.

Argumentos

NombreTipoQué hace
selfRMAddonInstancia del addon Rotation Master (implícita en las llamadas con dos puntos).
minimumnumberEstado de amenaza nativo mínimo finito, conservando los umbrales con signo y fraccionarios.
cachetable | nilCaché de observaciones de evaluación propiedad del llamador; con nil se consulta de nuevo.

Retornos

1number | nilRecuento observado completo no negativo, incluido cero, o nil si no está disponible.
2string | nilMotivo de disponibilidad de la política, la instantánea, la identidad o la observación de amenaza.

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.

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.

Cómo la llama el addon

  • Recuento de amenaza (evaluate)
    local count,reason=addon:GetConditionThreatCount(value.threat-1,cache)

Dependencias

Código fuente

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

Core.threat_count_conditions.GetConditionThreatCount(self, minimum, cache)
    local platform=self.Platform
    local policy=platform:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    local valid,issue=finite(platform,minimum)
    if not valid then return nil,issue end
    if not platform:CanReadValue(cache) then return nil,'restricted-value' end
    if cache~=nil and type(cache)~='table' then return nil,'invalid-threat-count-cache' end
    if policy=='restricted' then return self:GetConditionNameplateThreatCount(minimum,cache) end
    local snapshot,why=readField(platform,self,'unitsInRange')
    if why then return nil,why end
    if type(snapshot)~='table' then return nil,'unit-snapshot-unavailable' end
    local count=0
    for guid,entity in pairs(snapshot) do
        if not platform:CanReadValue(guid) or not platform:CanReadValue(entity) then return nil,'restricted-value' end
        if type(guid)~='string' or guid=='' or type(entity)~='table' then return nil,'invalid-unit-snapshot' end
        local unit,reason=readField(platform,entity,'unit')
        if reason then return nil,reason end
        if type(unit)~='string' or unit=='' then return nil,'invalid-unit-snapshot' end
        -- The existing forecast identity observer is exactly existence + GUID;
        -- it consumes no health, history, provider or clock facts.
        local observeIdentity=platform.GetHealthForecastIdentityObservation
        if type(observeIdentity)~='function' then return nil,'missing-api' end
        local current,identityReason=addon.Functions.cache.getCached(cache,observeIdentity,platform,unit)
        if not platform:CanReadValue(current) then return nil,'restricted-value' end
        if current==nil then return nil,identityReason or 'unit-guid-unavailable' end
        if current~=false then
            if type(current)~='string' or current=='' then return nil,'invalid-unit-identity' end
            -- A recycled token is excluded; its replacement is not new membership.
            if current==guid then
                local observeThreat=platform.GetUnitThreatObservation
                if type(observeThreat)~='function' then return nil,'missing-api' end
                local status,threatReason=addon.Functions.cache.getCached(cache,observeThreat,platform,unit)
                if not platform:CanReadValue(status) then return nil,'restricted-value' end
                if status==nil then return nil,threatReason or 'threat-data-unavailable' end
                if status~=false then
                    local readable,problem=finite(platform,status)
                    if not readable then return nil,problem end
                    if status>=minimum then count=count+1 end
                end
            end
        end
    end
    return count

Volver a Referencia de funciones