prologue-config.ts
4-beat guided first-time experience config. Players traverse these beats before reaching the hub. Each beat has a progress-counter completion check and a reward. Target total duration: ~10–15 min. Beats 1–3 run inside a single continuous tutorial run; beat 4 is metagame (mission + pull + hub lite).
Styx
Data module. No runtime behavior. Exports beat list + hub-reveal rule table. Consumed by prologue flow controller and hub-shell visibility checks.
Exports
| Symbol | Kind | Purpose |
|---|---|---|
PrologueBeatId | type alias | Union of the 4 beat ids |
PrologueBeat | interface | Shape of a single beat record |
PROLOGUE_BEATS | const array | Ordered list of 4 beats |
HubRevealLevel | type alias | 4-state hub reveal enum |
HUB_REVEAL_RULES | const record | Per-level visibility flags |
PrologueBeatId
'movement_combat' | 'level_up' | 'weapon_event' | 'mission_pull_hub'
PrologueBeat fields
| Field | Type | Notes |
|---|---|---|
id | PrologueBeatId | Stable id |
index | number | 0-based order |
name | string | Display name |
description | string | Short description |
tracking | ProgressKey | Progress key checked for completion (import from ./progress-keys) |
target | number | Target value of the tracked key |
reward.gems | number? | Gem grant |
reward.tickets | number? | Ticket grant |
ctaText | string | CTA shown during the beat |
Beats (PROLOGUE_BEATS)
| Idx | id | Name | Description | Tracking | Target | Reward | CTA |
|---|---|---|---|---|---|---|---|
| 0 | movement_combat | First Flight | Learn to fly and fight | total_kills | 5 | 10 gems | ”Destroy the enemies!“ |
| 1 | level_up | Getting Stronger | Level up for the first time | max_run_level | 2 | 15 gems | ”Choose an upgrade!“ |
| 2 | weapon_event | New Weapon | Find a weapon and complete an event | events_completed | 1 | 1 ticket + 20 gems | ”Complete the event!“ |
| 3 | mission_pull_hub | Welcome Home | Deploy a mission, make your first pull | pulls_made | 1 | 50 gems | ”Make your first pull!” |
Total prologue payout: 95 gems + 1 ticket.
Hub reveal
HubRevealLevel = 'locked' | 'hub_lite' | 'hub_mid' | 'hub_full'.
Transition flow: locked → hub_lite (prologue complete) → hub_mid (Ch.1 done) → hub_full (Ch.2 done).
HUB_REVEAL_RULES matrix
| Level | currencyBar | bottomNav | shopTab | collectionTab | missionsBtn | systemsBtn |
|---|---|---|---|---|---|---|
locked | no | no | no | no | no | no |
hub_lite | no | no | no | no | no | no |
hub_mid | yes | yes | yes | yes | yes | no |
hub_full | yes | yes | yes | yes | yes | yes |
Note: locked and hub_lite have identical visibility flags — the distinction is upstream state, not UI gating.
Dependencies
./progress-keys—ProgressKeytype for thetrackingfield.
EXTRACT-CANDIDATE
- The Beats table (id / name / tracking / target / reward / CTA) and the Hub-reveal matrix are pure tuning data — candidates for promotion to a roll-up
progression/prologue.mdwiki page covering the full 4-beat onboarding flow plus its hub-reveal transitions and total payout. - Reward grants (
{ gems?, tickets? }) duplicate the shape used elsewhere for prologue/mission payouts — candidate for a sharedReward/CurrencyGranttype if not already centralized. - Hub-reveal state machine (
locked → hub_lite → hub_mid → hub_full) duplicates progressive-disclosure logic likely referenced by hub shell + metagame — candidate for a dedicatedhub-reveal.mdconcept page documenting the full transition graph and gating events (prologue complete, Ch.1 done, Ch.2 done).