Reflective
What it is
Reflective is a reserved boss-flavored affix slot intended to retaliate against the player by reflecting a portion of incoming damage back as a projectile. No v1 boss currently carries it, and the projectile spawn path is not yet wired through the affix system. The damage filter is present and registered, but in its current form it passes incoming damage through unchanged.
Identity
| Field | Value |
|---|---|
| Affix ID | reflective |
| Category | boss-flavored |
| Priority | 80 |
| Hooks | filterIncomingDamage |
| Roll pool | none (excluded from world-roaming elite roll pool) |
| In-use by any boss | no |
Reflective sits in the boss-flavored band of the priority order at 80, below periodic_invuln (85) and above armored (20). When a future boss adopts the affix, the damage filter chain runs in descending priority, so reflective will see incoming damage after any higher-priority shield, gate, or invuln window has had its say.
What it does
| Step | Behavior |
|---|---|
| Incoming hit on host | Filter is invoked with the prospective damage value |
| Read reflectFraction | Read from instance state with a default of 0; throws if mistyped |
| Return | Unchanged damage value passes to the next filter |
The hook touches the reflectFraction state slot on every call so that a mistyped key in a boss roster entry would crash loudly at first hook invocation rather than silently apply the default. The hook does not currently spawn a retaliation projectile, does not deal damage to the player, and does not alter the incoming damage to the host.
Per-tier values
| Param | Type | Default | Notes |
|---|---|---|---|
| reflectFraction | number | 0 | Read and validated on every hit; not yet consumed |
There are no published per-boss overrides because no boss roster entry currently sets affixState.reflective. When a boss claims this affix, its roster entry will override reflectFraction through that block; mistyped values (non-number) throw at first hook invocation.
How it interacts
| Surface | Interaction |
|---|---|
| Damage filter chain | Runs at priority 80; if a higher-priority filter (shielded 100, shielded_respawn 100, respawn_as 95, gated 90, periodic_invuln 85) returns 0, reflective never sees the hit |
| Lower-priority filters | Whatever reflective returns flows into armored (20) and any further filters |
| World-roaming elites | Not in the roll pool; only appears if a boss roster entry hard-codes it |
| Player-facing retaliation | None today; the retaliation projectile is reserved for a future boss that claims the affix |
| Reflective burst | Distinct affix on the world-roaming side that fires an AoE on large hits via its own filter hook; the two share a naming prefix only |
EXTRACT-CANDIDATE
- The damage-filter priority order and its short-circuit rule are global affix-system behavior. Canonical home is the affixes overview page, referenced here rather than restated.
- The “read a tunable to force a crash on mistyped state” idiom is shared across affixes that have not yet been fully wired; if more reserved slots accumulate, that idiom may belong on the affixes overview page as a shared authoring rule.