Doomsayer
What it is
The most cinematic boss in the shipped roster. A single static prophet — the Oracle — holds arena center while the world ramps toward a scripted judgment moment 90 seconds into the fight. The Oracle fires a multi-layer arena-bisecting beam at t=90 s that one-shots anything in its path; the player’s job is to either kill the Oracle before the timer expires or read the long telegraph and clear the beam line at the last moment.
Doomsayer is a race-the-clock encounter built around one body. There are no anchors, no phase swaps, no respawning adds tied to the boss itself — just a single sustained-pressure ability and a long visual escalation that ends in a one-shot finale. The reward payout is the highest of the roster because the encounter punishes hesitation: stay too long, eat the beam, lose the run.
The encounter is tagged for the mini-boss pool. It also runs as the final boss when randomly drawn from the boss pool — the same authored roster scales up via the mini ×4 or boss ×8 stat multiplier.
Identity
| Field | Value |
|---|---|
| Theme | Prophet of the end (rune circles, void-purple gloom, gold prophecy light) |
| Palette cues | Void-purple primary, prophecy-gold secondary, dread-red warnings, starlight-white core, revelation-white flash |
| Pool kind | mini (eligible for both mini-boss and final boss slots) |
| Composition | 1 body, no anchors |
| Bar anchor | the Oracle |
| Roster body AI | hold_center (stationary) |
| Affixes on body | none |
| Abilities | Aimed Volley, Death Beam |
Arena
| Field | Value |
|---|---|
| Shape | circle |
| Radius | 360 world units |
| Terrain pattern | pillar_cross |
| Arena closing duration | 8 seconds |
The pillar_cross terrain places destructible pillars in a cross layout, giving the player line-of-sight breaks for the Aimed Volley pressure but no full cover from the centerline death beam (the beam is arena-bisecting).
Body composition and HP
| Body | Count | HP | Share pool | Targetable | AI | Spawn position |
|---|---|---|---|---|---|---|
| Oracle | 1 | 10000 | yes | yes | hold_center | center |
Total bar pool: 10000 HP, carried by the single Oracle body. This is the largest single-body HP pool in the roster (next-largest is Awakened Mech at 8000). The fight has no anchor gating and no damage filter — bullets land directly on the bar from the first contact.
The Oracle is stationary; the player is the one moving. The Oracle’s outline tints void-purple.
Phases and damage gates
| Rule | Trigger | Effect |
|---|---|---|
| Damage window | Always open | Oracle bar drains normally from t=0 to 0 HP |
| Win-by-kill | Oracle bar reaches 0 before t=90 s | Encounter ends; death cinematic plays |
| Win-by-dodge | Player survives the t=90 s beam | Beam fires once on a 999 s cooldown; encounter continues until the Oracle dies |
| Lose-by-beam | Player intersects the beam line during sustain | Instakill damage on contact |
There are no HP-threshold transitions and no scripted body swap. The Oracle is always vulnerable. The race-the-clock pressure comes from the visual escalation timeline driving toward the death beam, not from a damage gate.
Abilities
Aimed Volley
| Field | Value |
|---|---|
| Pattern | aimed_volley |
| Cooldown | 2.5 seconds |
| Telegraph duration | 700 ms |
| Bullet count per cast | 4 |
| Spread | 12 degrees |
| Bullet speed | 220 world units/sec |
| Bullet damage | 10 |
| Bullet radius | 5 |
| Bullet color | prophecy-gold |
A telegraphed 4-bullet volley aimed at the player. Smaller bullets than the heavy boss volleys (e.g. Awakened Mech’s), tuned for constant background pressure across the 90-second ramp. The 2.5 s cadence and 12° spread mean the player cannot camp on the Oracle to burn it down without taking some damage.
Death Beam
| Field | Value |
|---|---|
| Pattern | death_beam |
| Cooldown | 999 seconds (effectively single-cast) |
| First-cast start delay | 90.0 seconds |
| Telegraph duration | 3000 ms |
| Sustain duration | 400 ms |
| Line width | 80 world units |
| Damage | instakill (one-shot the player) |
| Beam core color | starlight-white |
| Beam halo color | prophecy-gold |
| Beam corona color | void-purple |
| Beam edge bloom color | dread-red |
The headline ability. Locks its angle at telegraph start from the player’s position, fires a 3-second telegraph along that line, then sustains the beam for 400 ms. The damage model is instakill — any player intersection during the sustain is a one-shot.
The visual is a four-layer additive composition. The outer purple corona is the first cut if the beam fails the 50 fps target on iPhone-class hardware (perf flag in the data file).
Spawn profile
| Field | Value |
|---|---|
| Profile id | storm |
| Wave trigger | recurring every 20 s starting at t=15 s |
| Add type | gunner (common rarity) |
| Count per wave | 8 |
| Spawn position | ring around arena center |
The storm profile creates long quiet windows then a wall of 8 mid-tier adds at once. Spawn beats land at roughly t=15 s, 35 s, 55 s, 75 s — the last beat lands inside the t=80 s “lock” countdown, putting maximum simultaneous pressure on the player during the final approach to the death beam.
Rewards
| Reward type | Value |
|---|---|
| XP on kill | 1500 |
| Currency on kill | 150 |
| Extra level-up reward picks granted | 2 |
| Cascade ring composition | 1 × scrap pile, 1 × mineral vein, 1 × comet fragment, 2 × magnetar pulse |
The largest reward payout in the roster (next-largest is XP 1200 / currency 120 / +2 picks on Awakened Mech and Hive Queen). The cascade ring is a custom 5-prop ring (overriding the default 2 scrap + 1 mineral + 1 comet + 1 magnetar). The composition leans into post-fight crowd control: two Magnetar Pulses pull the lingering add field into one collection beat, the Mineral Vein chains into more Comets, and a single Scrap Pile caps the workhorse drop.
Escalation timeline
The fight runs a fixed 90-second visual escalation. The timeline is cosmetic except for the death beam at the end — the player can kill the Oracle at any point during it to skip the finale. Each beat below is latched on the host so re-entry (pause/resume) re-fires at most once.
| Time | Beat |
|---|---|
| 0 s – 30 s | Calm gloom — persistent rune circles, void-purple aura, ambient breathing tint every 5 s |
| 30 s – 60 s | The gathering — gold rune ring brightens, ambient tint deepens, motes converge faster |
| 60 s | ”Judgment in 30” — dread-red edge vignette activates, outer red rune-ring fades in, dread tint flash |
| 60 s – 80 s | Every-5 s dread-red beats |
| 80 s | The lock — gold rune circle freezes in place, brightens to full saturation, starlight motes burst inward |
| 85 s – 90 s | Final countdown — core pulse frequency doubles (0.8 Hz → 1.6 Hz), one dread-red tick per second |
| 87 s | The warmup — screen darkens, edge vignette closes, horizontal stripe marks beam axis, slow camera pull-back |
| 87.5 s | Five emissions of 16 starlight sparks each converge on the Oracle |
| 88.5 s | Gold rune aura over-saturates (additive blow-out) |
| 89.5 s | Beam stripe thickens from 20 to 80, pulses at 8 Hz |
| 90 s | Death beam fires — white core, gold halo, purple corona, dread-red leading edge sparks, white-out flash, camera punch zoom, 24-amplitude screen shake for 0.8 s |
| 90.4 s | Beam fades; 80 starlight ash-fall sparks rain along the beam path |
| 90.6 s | Black edge vignette lifts back to normal |
| 91.0 s | Starlight-white afterglow tint pulse |
The Oracle’s persistent layers attached at encounter start are: slow gold rune circle (radius 80, 12 runes, 0.1 Hz rotation), void-purple aura halo (radius 100, 0.4 Hz pulse), gold core pulse (radius 18, 0.8 Hz), invisible dread-red rune ring (radius 110, fades in at 60 s), runic floor glyphs (void-purple stripes — skipped in low-perf mode), heavy underglow shadow (void-purple, radius 110), and starlight motes converging on the Oracle (skipped in low-perf mode).
Death cinematic
A 2.8-second sequence playing when the Oracle dies (independent of how — kill-before-beam or runtime end). The full sequence is themed “reverse-shockwave + soul-ascent + peaceful afterglow.”
| Time | Beat |
|---|---|
| 0.0 s | Pull-back camera zoom, gold rune flash burst around the Oracle |
| 0.3 s | Rune ring shatters into 24 gold/white shards, 40 gold spark burst |
| 0.5 s | Reverse-shockwave — 3 stacked rings shrink from 250 to 0 radius (purple, gold, white) staggered 80 ms apart |
| 0.7 s | Starlight-white revelation flash |
| 1.0 s | 60 starlight sparks radiate outward (ascending souls) |
| 1.2 s | Dread-red rune ring fades out |
| 1.5 s | Camera settles back to normal zoom |
| 2.4 s | Peaceful starlight-white afterglow vignette |
| 2.8 s | Encounter teardown takes over |
Scaling
Doomsayer is a mini-pool boss. The authored stats above are the level-1 baseline. The encounter is scaled at spawn by the boss tier multiplier and the run-depth ramp:
| Slot | Tier HP multiplier | Tier damage multiplier | Reward chamber cascade rings |
|---|---|---|---|
| Mini-boss appearance | 4.0 | 4.0 | 1 |
| Final boss appearance | 8.0 | 8.0 | 2 |
Depth ramp on top of the tier multiplier is 1.0 + 0.5 × (currentLevel - 1) / (totalLevels - 1), applied to both HP and damage.
| Slot | Depth multiplier | Combined HP | Combined Aimed Volley damage |
|---|---|---|---|
| Normal mode L3 (mini) | 1.50 | ×6.00 (60000 bar pool) | ×6.00 (60 per bullet) |
| Challenge mode L3 (mini) | 1.22 | ×4.89 | ×4.89 |
| Challenge mode L6 (mini) | 1.56 | ×6.22 | ×6.22 |
| Challenge mode L9 (mini) | 1.89 | ×7.56 | ×7.56 |
| Final-boss draw, last level of run | 1.50 | ×12.00 (120000 bar pool) | ×12.00 (120 per bullet) |
The Death Beam damage is instakill at every scaling tier — its tabled value is a sentinel, not a number scaled by the damage multiplier.
In addition, every boss inherits the default per-level scaling curve (hp ×2.0/level uncapped, damage ×2.15/level uncapped, plus soft/hard caps on fire rate, move speed, projectile speed, sweep speed, spawner frequency, effect radius, and enrage timer) starting from the player’s currentLevel at encounter spawn.
The 90-second beam timer is not scaled by level or tier — every appearance of Doomsayer fires the beam at the same 90-second mark regardless of difficulty.
EXTRACT-CANDIDATE flags
- The mini ×4 / final ×8 tier multipliers and the depth ramp formula are duplicated from
mini-bosses.mdand the other per-entity boss pages. Acceptable per the wiki “tables can duplicate” rule — kept here so the per-entity page is readable standalone. - The default boss scaling curve lives in
data/boss-scaling.tsand is shared by every boss. Currently surfaced onbosses.mdand duplicated on each per-entity page; recommend extracting to abosses/scaling.mdonce all 8 entity pages exist. - The
death_beamability pattern is the only such pattern in the codebase and is unique to Doomsayer. Its instakill-on-intersection contract, telegraph rendering, and angle-locking behavior are not yet documented; flag for an abilities catalog page when one is broken out. - The
aimed_volleypattern is shared with other bosses (e.g. Awakened Mech). Its parameter contract (count / spread / bulletSpeed / bulletDamage / bulletRadius / telegraphMs) is documented inline here; consolidate into a shared ability page once a catalog exists. - The
stormspawn profile is unique to Doomsayer in the shipped roster. Already documented onbosses.md; no extraction needed beyond confirming the link. - The escalation-timeline beat list is dense and Doomsayer-specific. Could be excerpted as a “cinematic boss” pattern example on a future authoring-guide page for boss design, but doesn’t duplicate anything outside this entity.
- The Oracle enemy type (
solaris_oracle) is shared with the Solaris faction (Reactor Core also uses Solaris types). Its raw archetype stats (HP 600, speed 0, radius 30, etc.) are overridden by the boss roster’s hp=10000; the raw archetype is only referenced for sprite/archetype dispatch. Belongs on an enemies catalog page rather than here. - The
hold_centerAI id is shared with other static-anchor bosses. Documented onbosses.mdAI list; no extraction needed.