Shock Lance

What it is

A unique-category artifact that fires a damaging shockwave forward on a fixed timer. The shockwave is a forward-traveling line that pierces everything in its path. Damage scales as a percentage of weapon damage; speed, width, lifetime, and range all grow with tier. Identified by a wind icon and a red palette (primary #ff4444, secondary #cc2222, bright #ff8888).

Reward-card flavor: “Every few seconds, a damaging shockwave rips forward through anything in its path.”

Identity

FieldValue
Display nameShock Lance
CategoryUnique
Icon💨
Damage tagNone (type-agnostic)
Primary color#ff4444
Secondary color#cc2222
Bright color#ff8888

Per-tier values

The source defines four tiers (uncommon → rare → epic → legendary). At runtime a fifth “common” tier is prepended; its values record is shared with the uncommon row, with differentiation coming from the per-artifact flat stat bonus rather than these effect values.

TierRarityInterval (s)Damage (% of weapon damage)Line speed (px/s)Line width (px)Lifetime (s)Range (px)
0Common61501100241.4900
1Uncommon61501100241.4900
2Rare51801200301.61050
3Epic42201350361.91200
4Legendary33001600482.51500

Effect

A single repeating timer effect drives the artifact.

PropertyValue
Trigger typeTimer (repeating)
Timer durationinterval (per-tier, see above)
Banner on procYes
ConditionsNone

On each proc, two actions fire in order:

OrderActionParameters bound from tier values
1Custom handler tbone_shockwave_beamdamage, speed, width, lifetime, range
2Flash artifact (HUD pulse)None

Stacking rules

This artifact is in the unique category. The data file declares no internal stacking, charge, or kill-counter logic — the timer simply ticks on its own interval and procs the beam handler. There is no maxStacks, no on-hit accumulator, and no per-enemy state in this definition.

EXTRACT-CANDIDATE flags

  • Common-tier resolution rule. The _types.ts doc comment states that tier 0 (common) reuses the uncommon values record and that differentiation comes from a per-artifact flat stat bonus scaled by FLAT_BONUS_PCT_BY_TIER (10 at common, up to 50 at legendary). This rule is general to all artifacts and belongs on the artifacts roll-up page, not here.
  • flash_artifact action. Used by every artifact effect that wants a HUD pulse on proc. Belongs in a shared effect-actions reference.
  • tbone_shockwave_beam custom handler. The shockwave projectile/line behavior (forward travel, piercing, lifetime/range cutoff) lives in engine code, not data. Its rules (pierce-all, single-direction, despawn condition) should be documented on a shared shockwave/beam mechanics page once that handler is mapped.
  • procAudioCue field. Not used by this artifact. The _types.ts comment notes a project rule that common-trigger procs should have their own audio — Shock Lance currently omits it, which is a possible content gap.