Chame como
Core.health_forecast_conditions.nativeValue(self, unit, kind, cache)
Registre a dependência Core.health_forecast_conditions.nativeValue e depois chame-a por esse nome. Uma chamada com namespace não passa self: use uma chamada com dois-pontos ou passe o objeto você mesmo.
O que faz
Reads a unit's current or maximum health through the platform's health-forecast observer and the evaluation cache, rejecting restricted, missing, nonfinite or negative values.
Argumentos
| Nome | Tipo | O que faz |
|---|---|---|
self | RMAddon | Rotation Master addon instance whose Platform is used. |
unit | string | Unit token to read. |
kind | string | "current" or "maximum". |
cache | table | nil | Evaluation-pass cache passed to getCached, or nil to read directly. |
Retornos
| 1 | number | nil | Health value, or nil when unavailable. |
|---|---|---|
| 2 | string | nil | Reason for nil: missing-api, restricted-value, the observer's reason, health-data-unavailable or invalid-health-forecast-number. |
Edições
As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.
Não lê nenhuma API do jogo diretamente.
Valores secretos (Retail e Forever)
No Retail e no Forever, o jogo entrega valores secretos aos addons. Esta função auxiliar verifica o que lê (addon.Platform:CanReadValue) e retorna nil com um motivo como restricted-value em vez de um valor secreto que não consegue comparar. Trate nil como indisponível, não como false.
Como o addon a chama
Core.health_forecast_conditions.GetConditionHealthForecastif current==nil or current==false then current,why=nativeValue(self,unit,'current',cache);if current==nil then return nil,why end end
Dependências
Código-fonte
Core/health_forecast_conditions.lua, linha 52. Somente leitura no jogo; Duplicar cria uma cópia editável.
Core.health_forecast_conditions.nativeValue(self, unit, kind, cache)
local platform=self.Platform
if type(platform.GetHealthForecastValueObservation)~='function' then return nil,'missing-api' end
local value,why=addon.Functions.cache.getCached(cache,platform.GetHealthForecastValueObservation,platform,unit,kind)
if not platform:CanReadValue(value) then return nil,'restricted-value' end
if value==nil then return nil,why or 'health-data-unavailable' end
local valid,reason=finite(platform,value)
if not valid then return nil,reason end
if value<0 then return nil,'invalid-health-forecast-number' end
return value