Riferimento › Riferimento delle funzioni › Core

Core.threat_count_conditions.GetConditionThreatCount

pubblica

Chiamala come

addon:GetConditionThreatCount(minimum, cache)

Disponibile direttamente tramite addon; non serve alcuna dipendenza.

Cosa fa

Conta solo le unità indicizzate per GUID già presenti nell'istantanea dei membri osservata. Verifica l'identità attuale dell'identificativo prima di usare l'osservatore della minaccia pubblicato; gli identificativi accertati come assenti o riutilizzati vengono esclusi senza aggiungere sostituti. Le osservazioni complete di identità e minaccia condividono solo la cache di valutazione fornita, mentre l'appartenenza viene percorsa da capo. Una unità accertata come non nemica o una minaccia nil facoltativa non viene contata; dati richiesti illeggibili, malformati o falliti rendono non disponibile l'intero risultato. Non enumera un elenco completo dei membri, non applica un filtro di distanza e non modifica i record tracciati.

Argomenti

NomeTipoCosa fa
selfRMAddonIstanza dell'addon Rotation Master (implicita nelle chiamate con due punti).
minimumnumberStato di minaccia nativo minimo finito, che preserva soglie con segno e frazionarie.
cachetable | nilCache delle osservazioni della valutazione posseduta dal chiamante; con nil esegue nuove query.

Valori restituiti

1number | nilConteggio osservato completo e non negativo, zero incluso, oppure nil se non disponibile.
2string | nilMotivo di policy o di indisponibilità dell'osservazione di istantanea, identità o minaccia.

Edizioni

Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.

Non legge direttamente alcuna API di gioco.

Valori segreti (Retail e Forever)

Su Retail e Forever il gioco fornisce agli addon valori segreti. Questa funzione di supporto controlla ciò che legge (addon.Platform:CanReadValue) e restituisce nil con un motivo come restricted-value invece di un valore segreto che non può confrontare. Considera nil come non disponibile, non come false.

Come la chiama l'addon

  • Conteggio minaccia (evaluate)
    local count,reason=addon:GetConditionThreatCount(value.threat-1,cache)

Dipendenze

Sorgente

Core/threat_count_conditions.lua, riga 50. Nel gioco è in sola lettura; Duplica crea una copia modificabile.

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

Torna a Riferimento delle funzioni