Cannon
What it is
Arc-lobbed bomb-tag explosive that fires a perpendicular volley of cannonballs alongside the ship. Each shell travels on a fixed-duration arc and detonates with a blast-radius AoE at the landing point. Rare drop weight in chests.
Stats
Raw spec values, before the global damage multiplier and horizontal modifiers. See weapons for the level-scaling formula, damage curve, VFX tiers, and horizontal modifier tables.
| Stat | L1 | L10 | L20 |
|---|---|---|---|
| Damage per shell | 96 | 643.11 | 1251.01 |
| Fire rate (shots/s) | 0.30 | 0.3864 | 0.4824 |
| Projectile speed | 520 | 592 | 672 |
| Projectile size | 18 | 22.5 | 27.5 |
| Blast radius | 140 | 203.666 | 274.406 |
| Acquire range | 204 | 258 | 318 |
| Arc time | 0.8 s | 0.8 s | 0.8 s |
| Projectile lifetime | 1.0 s | 1.0 s | 1.0 s |
| Travel range multiplier | 1.0× | 1.0× | 1.0× |
| Warmup | 0.25 s | 0.25 s | 0.25 s |
| Fire rate jitter | ±20% | ±20% | ±20% |
| Double-shot chance | 25% | 25% | 25% |
Shell count by level
Stepped — value applies at the listed level and above until the next step.
| Level | Shells per volley |
|---|---|
| 1 | 1 |
| 3 | 2 |
| 5 | 3 |
| 7 | 4 |
| 10 | 5 |
| 13 | 6 |
| 16 | 7 |
| 19 | 8 |
Identity
| Field | Value |
|---|---|
| Family | Explosive |
| Damage tag | Bomb |
| Rarity | Rare |
| Scaling curve | Linear |
| Target mode | Flanking |
| Collision mode | First hit |
| Area mode | Blast |
| Behavior | Arc mortar |
| Can hit destructibles | Yes |
Behavior
- Auto-aim picks an enemy perpendicular to ship facing (flanking mode). See weapons for the full target-mode definitions.
- Each fire spawns the shell count for the current level, laid out in a line perpendicular to the firing direction with 18 px between shells.
- Shells follow a parabolic arc lasting 0.8 s before impact. Target position is led by the arc time so moving enemies are still hit.
- On impact each shell detonates a blast-radius AoE centered on the landing point. Damage is applied once per shell on first hit.
- Cadence is jittered by ±20% on each fire so volleys don’t lock to a metronome.
- Each fire has a 25% chance to immediately fire a second volley (double shot).
- Warmup of 0.25 s gates the first shot of a run.
- Cannon shells can damage destructible props in addition to enemies.
Scaling
- Damage, fire rate, projectile speed, projectile size, blast radius, and acquire range all use a linear scaling curve — each gains
scaling × (level − 1)over their base value. - Shell count is stepped (table above) rather than linear.
- Arc time, travel range multiplier, warmup, fire rate jitter, and double-shot chance are constant across all levels.
- The damage stat is further multiplied by the global damage curve and low-level buff, and by horizontal damage modifiers at +4% per step.
- Fire rate is grown by horizontal fire-rate modifiers at +10% per step.
- Area horizontal modifiers grow the blast radius (area mode: blast).
- The More Projectiles horizontal track adds bonus shells: +2 at 5 stacks, +4 at 10, +6 at 15, +7 at 20.
EXTRACT-CANDIDATE flags (shared facts not yet on a canonical page, or worth promoting):
- Arc-mortar projectile lifetime rule. Engine logic sets lifetime = arcTime + 0.2 s for the
arc_mortarbehavior, overriding the standardacquireRange × travelRangeMult / speedformula. Currently only cannon, mortar, and the Hellrain legendary use this behavior. Belongs on the weapons hub or a behaviors sub-page. - Perpendicular layout spacing.
perpendicularLayout: truewithperpSpacing(px between adjacent projectiles in the line) is a layout primitive shared by cannon and mortar. Not documented on the hub. - Double-shot chance. A per-fire reroll for an immediate extra volley. Belongs in the shared behavior reference if more than one weapon uses it.
- Fire rate jitter. Already described inline on missile/mortar/cannon rows but lacks a single canonical paragraph explaining the multiplicative-on-cooldown semantics.
- First-hit collision mode. Documented implicitly through weapon rows; a short canonical paragraph on collision modes (
first_hit,pierce_all,target_only,beam_trace,chain_arc) would centralize this. - Warmup gating. Mentioned for individual weapons but no shared definition of “warmup blocks the first shot only” vs. “warmup applies per fire”.
- Can-hit-destructibles flag. Used by several weapons; no canonical page lists which weapons can damage destructible props.