Layers a transient additive pulse on top of whatever statuses are active, linearly
decaying strength to zero over duration seconds - a damage hit or a heal glow that
needs no status of its own and no caller-managed timer.
marks kind active or inactive; a kind with no matching style is tracked but never shown
advances any pulsing style and the flash decay, and repaints the sprite's additive channel
Turns a set of active status-effect names into one additive colour on a sprite, so a game's own
actors.applyStatusEffecthandles - which know nothing about rendering - can drive what a character looks like without either side importing the other.Every active status composes over the additive channel (
TintedSprite.colorAdd) rather than one winning by declaration order: poisoned-and-burning sums both colours (each channel clamped to 1, so an oversaturated combination clips rather than wrapping), instead of only the first-declared style showing. This class never touches the multiplytint, so a sprite's own identity tint (a team colour, say) rides underneath untouched - the composition this class's own earlier version could not do, because writing both halves oflerpTintper update meant the last status checked always overwrote whatever tint a caller had set. A one-shotflash(a damage hit, a heal glow) layers its own decaying contribution on top of whatever statuses are active, rather than needing a caller to juggle a separate colour write.targetis any object shaped likeTintedSprite's owncolorAddfield - duck-typed the wayProjectiletakes a plain{x, y}rather than a real PixiSprite, so this is fully testable without Pixi and works on any sprite subclass that exposes the same field.Example