Perpendicular Layout

What it is

A multi-projectile spawn pattern in which every shot in a single fire event travels parallel along the same aim direction, but spawns from points offset sideways from the ship along the axis perpendicular to that aim. The result is a wall of simultaneous shots rather than a cone of angular spread or a tight stack at one muzzle. Spread is positional, not angular — every projectile flies the same heading.

Geometry

Each shot i of count shots gets a perpendicular offset along the axis 90° from the aim direction. The line is centered on the ship, with shots evenly spaced.

QuantityFormulaNotes
Perpendicular axisaim angle + 90°rotates with facing
Per-shot offset(i − (count − 1) / 2) × spacingcenters the line on the ship
Center shot offset (odd count)0sits on the ship’s aim line
Total line width(count − 1) × spacinggrows linearly with shot count
Shot headingaim angleidentical for every shot

For weapons that arc to a landing point (cannon-style), the landing positions receive the same perpendicular offset as the spawn positions, so impacts land in a line at the target as well — the whole volley moves as a rigid bar from muzzle to target.

Spacing source

SourceUsed whenValue
Explicit perpSpacing on weapon specSet on the weaponThe literal pixel value
Direct-fire fallbackperpSpacing unset, direct pathclamp( 50 / count, 7, 50 ) px
Arc-mortar fallbackperpSpacing unset, arc path18 px

Explicit spacing means the line grows wider with each added shot. The direct-fire fallback shrinks per-shot spacing as count grows, keeping the total line width roughly constant.

Which weapons use it

WeaponSpacing (px)Shots at L1Shots at L20Notes
Cannon1818Arc path; lands as a line at the target. Inherits 25% double-shot chance, which doubles the whole volley.

No other base weapon in the current weapon table enables this primitive. Shotgun-style multi-pellet weapons use angular spread instead (see Spread).

Interactions

Interacts withEffect
Spread (angular)Heading stays locked to aim regardless of any spread value — angular spread is bypassed by this primitive.
More Projectiles (horizontal modifier)Adds shots to the volley. With fixed spacing the line widens; total damage on a single packed target rises only if shots can stack on the same enemy.
Double-shot chanceRolls once per fire event; on proc the entire perpendicular volley fires twice, producing two parallel lines (cannon: 25% chance).
Random spawn offsetApplied on top of the perpendicular offset — jitters each shot’s spawn point after the line is laid out.
Stagger delayForced to 0 when this primitive is active — the whole line fires on the same frame.
Target modeAim direction is chosen by the weapon’s target mode first; the line is then drawn perpendicular to that resolved aim. Flanking target mode pairs naturally because the line sweeps across sideways crowds.
Shell speed variancePer-shot ±10% speed jitter still applies — the line stays straight at launch but desyncs in flight.

EXTRACT-CANDIDATEs

  • EXTRACT-CANDIDATE: weapons/cannon.md — Cannon-specific page should reference this primitive and list its perpSpacing of 18 px alongside shellCount progression.
  • EXTRACT-CANDIDATE: concepts/spread.md — Angular spread concept page should contrast itself against this primitive (angular vs positional spread).
  • EXTRACT-CANDIDATE: concepts/double-shot.md — Double-shot proc page should note that perpendicular volleys double as whole lines, not as duplicated single shots.
  • EXTRACT-CANDIDATE: concepts/horizontal-modifiers.md — More Projectiles entry should call out the line-widening effect on perpendicular-layout weapons specifically.