Referenz › Funktionsreferenz › Core

Core.threat_count_conditions.GetConditionThreatCount

öffentlich

Aufruf als

addon:GetConditionThreatCount(minimum, cache)

Direkt über addon verfügbar; keine Abhängigkeit nötig.

Was sie bewirkt

Nur Einheiten mit GUID-Schlüssel zählen, die bereits in der beobachteten Momentaufnahme der Zugehörigkeit stehen. Vor Verwendung des veröffentlichten Bedrohungsbeobachters die aktuelle Identität der Kennung prüfen; bekannt abwesende oder wiederverwendete Kennungen werden ausgeschlossen, ohne Ersatz hinzuzufügen. Vollständige Identitäts- und Bedrohungsbeobachtungen teilen sich nur den übergebenen Auswertungs-Cache, während die Zugehörigkeit neu durchlaufen wird. Bekannte Nicht-Feinde oder optionale nil-Bedrohung werden nicht gezählt; erforderliche unlesbare, fehlerhafte oder fehlgeschlagene Fakten machen das gesamte Ergebnis nicht verfügbar. Dies zählt keine vollständige Mitgliederliste auf, wendet keinen Reichweitenfilter an und ändert keine verfolgten Datensätze.

Argumente

NameTypWas sie bewirkt
selfRMAddonAddon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit).
minimumnumberEndlicher minimaler nativer Bedrohungsstatus; vorzeichenbehaftete und gebrochene Schwellenwerte bleiben erhalten.
cachetable | nilVom Aufrufer verwalteter Beobachtungs-Cache der Auswertung; nil fragt neu ab.

Rückgabewerte

1number | nilVollständige nichtnegative beobachtete Anzahl einschließlich null oder nil, wenn nicht verfügbar.
2string | nilVerfügbarkeitsgrund aus Richtlinie, Momentaufnahme, Identitäts- oder Bedrohungsbeobachtung.

Editionen

Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.

Sie liest keine Spiel-API direkt.

Geheime Werte (Retail und Forever)

Auf Retail und Forever übergibt das Spiel Addons geheime Werte. Diese Hilfsfunktion prüft, was sie liest (addon.Platform:CanReadValue), und gibt statt eines geheimen Werts, den sie nicht vergleichen kann, nil mit einem Grund wie restricted-value zurück. Behandeln Sie nil als nicht verfügbar, nicht als false.

Wie das Addon sie aufruft

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

Abhängigkeiten

Quelle

Core/threat_count_conditions.lua, Zeile 50. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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

Zurück zu Funktionsreferenz