Ties a second sprite's position to a first one's, with its own offset and its own optional
lifetime - a shadow flat beneath a unit, a status icon floating above it, a shield glyph at a
corner. StatusVisuals only tints a sprite that already exists; this is for a sprite that is
its own thing, positioned relative to an owner rather than drawn as part of it.
Renderer-neutral by the same design Projectile and LightningArc use: it takes any
{ x, y } point (a real Pixi Sprite, a plain object, a test double) and only ever writes
to it, so it needs no renderer to construct or test. Z-order and parenting stay the caller's,
for the same reason Halo leaves them: whether a shadow is added before or after its unit is
a per-game drawing decision, not something a framework should guess.
Ties a second sprite's position to a first one's, with its own offset and its own optional lifetime - a shadow flat beneath a unit, a status icon floating above it, a shield glyph at a corner.
StatusVisualsonly tints a sprite that already exists; this is for a sprite that is its own thing, positioned relative to an owner rather than drawn as part of it.Renderer-neutral by the same design
ProjectileandLightningArcuse: it takes any{ x, y }point (a real PixiSprite, a plain object, a test double) and only ever writes to it, so it needs no renderer to construct or test. Z-order and parenting stay the caller's, for the same reasonHaloleaves them: whether a shadow is added before or after its unit is a per-game drawing decision, not something a framework should guess.Example