What it is

Abilities are timed attack patterns attached to enemies (mostly bosses). Each ability shows a visible telegraph (a bloom, line, cone, or ground circle) before firing so the player can read and dodge it. After the pattern resolves, the ability waits on a cooldown before triggering again.

Stats / variables

Available patterns

PatternBehaviorTelegraph?Sustained?
radial_burstN bullets fire outward in a 360 degree ring from the casteryesno
aimed_volleyN bullets fire toward the player’s locked telegraph-time position, optional spreadyesno
cone_slamWedge of bullets fan out in front of the caster, reaches the cone tip in 0.6 secondsyesno
telegraphed_circlesM ground AOE circles paint and detonate; damage applies to player standing insideyesno
beam_sweepLaser rotates from caster across an arc, applying DPS to player on the lineyesyes
spiral_vortexRotating Touhou-style spiral emits bullet rings on a cadencenoyes
wall_sweepWall of bullets crosses the arena horizontally or vertically with random safe gapsyesno
spawn_telegraphGreen ground circles paint, then spawn the configured enemy type at each circleyesno
death_beamSingle arena-bisecting kill beam; angle locks at telegraph startyesyes

Pattern parameters

radial_burst

ParameterDefaultNotes
countrequiredNumber of bullets in the ring
bulletSpeedrequiredPixels per second
bulletDamagerequiredPer bullet
bulletRadiusrequiredPixels
bulletColorff5500Hex color for bullet and telegraph
telegraphMs1000Telegraph duration in milliseconds

aimed_volley

ParameterDefaultNotes
countrequiredNumber of bullets fired
spread0Total spread arc in degrees, even distribution across [-spread/2, +spread/2]
bulletSpeedrequiredPixels per second
bulletDamagerequiredPer bullet
bulletRadiusrequiredPixels
bulletColorffaa00Hex color
telegraphMs800Telegraph duration in milliseconds

cone_slam

ParameterDefaultNotes
lengthrequiredCone reach in pixels (also bullet travel distance)
halfWidthrequiredHalf-angle of the cone in degrees
damagerequiredPer bullet
bulletCount8Bullets fanned across the cone
bulletColorff3300Hex color
telegraphMs1200Telegraph duration in milliseconds
Bullet radius8Fixed
Time to cone tip0.6Seconds — speed derived from length / 0.6

telegraphed_circles

ParameterDefaultNotes
circleCountrequiredNumber of circles painted
circleRadiusrequiredPixels
circleDamagerequiredApplied to player inside circle at detonation frame
arenaPositionsrandomOne of: random, cardinal, ring
bulletColorff8800Hex color
telegraphMs1500Telegraph duration in milliseconds

beam_sweep

ParameterDefaultNotes
arcDegreesrequiredTotal sweep arc
sweepDurationMsrequiredSustain duration in milliseconds
damagePerSecrequiredApplied each frame ship overlaps beam
beamLengtharena radiusPixels
bulletColorff0066Hex color
telegraphMs1000Telegraph duration in milliseconds
Beam hit width12Fixed pixels half-width for ship overlap

spiral_vortex

ParameterDefaultNotes
sustainMsrequiredDuration of emission in milliseconds
emitIntervalMsrequiredTime between emit pulses in milliseconds
bulletPerEmitrequiredBullets per pulse, spread around full circle
bulletSpeedrequiredPixels per second
rotationSpeedDegPerSecrequiredAngular drift per second
bulletColorcc66ffHex color
Bullet damage1Fixed
Bullet radius6Fixed pixels
Telegraph0No telegraph; visually ramps via spark burst

wall_sweep

ParameterDefaultNotes
wallSpeedrequiredWall travel speed in pixels per second
gapCountrequiredNumber of safe gaps in the wall
gapWidthrequiredHalf-width of each gap in pixels
bulletDamagerequiredPer bullet
directionhorizontalhorizontal or vertical
bulletColorff0044Hex color
telegraphMs2000Telegraph duration in milliseconds
Bullet radius8Fixed pixels
Bullet spacing16Fixed pixels (radius times two)

spawn_telegraph

ParameterDefaultNotes
circleCountrequiredNumber of spawn points painted
enemyTypeIdrequiredEnemy type spawned at each point
affixIdsempty listAffixes applied to each spawn
positionscardinalOne of: random, cardinal, ring
telegraphMs1500Telegraph duration in milliseconds
Telegraph circle radius32Fixed pixels
Telegraph color88ff88Fixed green

death_beam

ParameterDefaultNotes
sustainMsrequiredBeam-active duration in milliseconds
lineWidthrequiredBeam thickness in pixels
damageInstaKillrequiredDamage applied each frame ship overlaps beam
bulletColorff0000Hex color
telegraphMs3000Telegraph duration in milliseconds
Telegraph line thickness8Fixed pixels
Screen tint pulse alpha0.3Fixed

Registered ability templates

Ability IDPatternCooldown (s)Start delay (s)Key parameters
generic_minor_radialradial_burst4.02.0count 8, speed 180, damage 4, radius 6, color ff8800, telegraph 700ms
generic_spawn_callspawn_telegraph8.04.0circleCount 4, enemy orb_common, no affixes, cardinal positions, telegraph 1500ms
pierre_telegraphed_circlestelegraphed_circles5.00circleCount 3, radius 80, damage 25, random positions, color cc5522, telegraph 1500ms
marco_aimed_volleyaimed_volley2.50count 5, spread 25, speed 220, damage 8, radius 5, color ff4422, telegraph 800ms

How it works (gameplay flow)

  • Every enemy carrying an ability runs through the same loop: idle, telegraph, optional sustain, idle again.
  • On spawn, the first fire is gated by the start delay (warm-up grace before the first attack).
  • When the cooldown reaches zero, the pattern enters the telegraph phase and paints a visible warning (bloom, aimed line, cone shape, ground circle, beam charge, wall line, or green spawn circle).
  • The telegraph duration is fixed for that ability — the player has that window to reposition.
  • When the telegraph ends, single-shot patterns fire bullets or apply damage and immediately go idle; sustained patterns transition into the sustain phase and tick damage/emissions every frame until the sustain timer elapses.
  • The cooldown timer starts at the end of the telegraph/sustain phase, so a sustained beam does not double-count its sustain time against its cooldown.
  • For aimed_volley, the player’s position is locked at telegraph start — moving during the telegraph dodges the shot.
  • For death_beam and beam_sweep, the angle locks at telegraph start; the beam then sweeps or holds along that fixed line.
  • For wall_sweep, the starting edge alternates each fire — left/right or top/bottom flips between consecutive casts.

Interactions

  • Bosses — bosses-as-enemies references abilities by id from a roster ability list; abilities are the primary combat surface for bosses.
  • Boss arena — patterns no-op outside a boss arena; arena geometry (center, radius, diagonal, cardinal points, ring points, random points) drives wall sweeps, death beams, and spawn placements.
  • Enemy spawning — spawn_telegraph spawns regular enemy types with optional affixes at painted positions.
  • Combat damage — telegraphed_circles, beam_sweep, and death_beam damage the player directly through the standard damage pipeline (damage reduction, invuln, threshold scaling).
  • Enemy bullets — radial_burst, aimed_volley, cone_slam, spiral_vortex, and wall_sweep push bullets into the standard enemy bullet pool and despawn when leaving arena bounds.
  • VFX — telegraph blooms, lines, cones, circles, beam charges, screen tints, spark bursts, shockwave bands, and ground impact rings are painted by the VFX layer kit.

What it does NOT do

  • Does not allow the player to use abilities — abilities are enemy-only.
  • Does not target friendly fire or other enemies — only the player is damaged.
  • Does not auto-aim mid-flight — aimed_volley locks position at telegraph start, not at fire.
  • Does not chain or combo abilities — each instance ticks independently.
  • Does not pause cooldown when the host enemy is stunned or rooted — cooldown ticks every frame the host is alive.
  • Does not fire outside a boss arena — patterns silently no-op if no arena is active.
  • Does not deal damage during the telegraph phase — only the fire frame (single-shot) or sustain frames (beams) apply damage.
  • Does not retarget after telegraph — beams, aimed volleys, and death beams hold their locked geometry.
  • Does not allow silent ID collisions — duplicate ability ids throw at registration.