{{!-- Visibility Table Component --}} {{#if showOutcomeColumn}} {{!-- Token --}} {{!-- Name --}} {{!-- Visibility selection (now includes trash when present) --}} {{!-- Current State --}} {{!-- DC --}} {{!-- Outcome --}} {{else}} {{!-- Token --}} {{!-- Name --}} {{!-- Visibility selection (now includes trash when present) --}} {{!-- Current State --}} {{!-- DC --}} {{/if}} {{#if showOutcomeColumn}} {{/if}} {{#each tokens as |target|}} {{#if ../showOutcomeColumn}} {{/if}} {{/each}}
{{localize "PF2E_VISIONER.UI.TOKEN"}} {{localize "PF2E_VISIONER.UI.NAME"}} {{localize "PF2E_VISIONER.TOKEN_MANAGER.VISIBILITY_STATE"}} {{localize "PF2E_VISIONER.UI.CURRENT_STATE"}} {{#if isTargetMode}}Perception DC{{else}}Stealth DC{{/if}}{{localize "PF2E_VISIONER.UI.OUTCOME"}}
{{#if target.isFoundryHidden}} {{/if}} {{#if target.hasActiveTimer}} {{/if}}
{{target.name}}
{{#each target.visibilityStates as |state|}} {{/each}}
{{#if target.isAvsControlled}} {{!-- When AVS is controlling, show the actual current state with AVS chip --}} {{#if (eq target.currentVisibilityState "observed")}} Observed {{#unless target.isNonAvsToken}} AVS {{/unless}} {{else if (eq target.currentVisibilityState "concealed")}} {{localize 'PF2E_VISIONER.VISIBILITY_STATES.observed_concealed'}} {{#unless target.isNonAvsToken}} AVS {{/unless}} {{else if (eq target.currentVisibilityState "hidden")}} Hidden {{#unless target.isNonAvsToken}} AVS {{/unless}} {{else if (eq target.currentVisibilityState "undetected")}} Undetected {{#unless target.isNonAvsToken}} AVS {{/unless}} {{else}} {{!-- Fallback - should not show 'avs' as a state --}} Observed {{#unless target.isNonAvsToken}} AVS {{/unless}} {{/if}} {{else}} {{!-- When not AVS controlled, show the selected state --}} {{#each target.visibilityStates as |state|}} {{#if state.selected}} {{state.label}} {{/if}} {{/each}} {{/if}} {{#if ../isTargetMode}} {{target.perceptionDC}} {{else}} {{target.stealthDC}} {{/if}} {{#if target.showOutcome}} {{target.outcomeLabel}} {{/if}}