generated from nhcarrigan/template
c5d1f53eef
- 18 zones, 72 bosses, 90 quests across the goddess realm - 32 disciple tiers, 53 equipment pieces, 9 equipment sets - 57 goddess upgrades, 25 consecration upgrades, 15 enlightenment upgrades - 54 sacred materials, 36 crafting recipes, 72 exploration areas - 40 goddess achievements - Added GoddessEquipmentSet type + computeGoddessSetBonuses to @elysium/types - All data files excluded from coverage pending Chunk 4 route imports
1718 lines
82 KiB
TypeScript
1718 lines
82 KiB
TypeScript
/**
|
|
* @file Game data definitions.
|
|
* @copyright nhcarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
|
|
/* eslint-disable max-lines -- Data file */
|
|
/* eslint-disable stylistic/max-len -- Data content */
|
|
import type { GoddessExplorationArea } from "@elysium/types";
|
|
|
|
export const defaultGoddessExplorationAreas: Array<GoddessExplorationArea> = [
|
|
// ── Celestial Garden ─────────────────────────────────────────────────────
|
|
{
|
|
description: "A sun-dappled clearing where divine flowers grow in patterns that mirror the constellation of the goddess's birth.",
|
|
durationSeconds: 30,
|
|
events: [
|
|
{
|
|
effect: { amount: 50, type: "prayers_gain" },
|
|
id: "garden_glade_harvest",
|
|
text: "Your disciples discover a cluster of prayer crystals half-buried in the soft earth.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "garden_glade_guardian",
|
|
text: "A territorial celestial sprite drives several disciples from the glade before they can retreat.",
|
|
},
|
|
],
|
|
id: "garden_glade",
|
|
name: "The Garden Glade",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_petal", maxQuantity: 3, minQuantity: 1, weight: 5 },
|
|
{ materialId: "prayer_crystal", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_celestial_garden",
|
|
},
|
|
{
|
|
description: "A vast meadow at the garden's edge where the divine light is diffused into something even novice disciples can bathe in safely.",
|
|
durationSeconds: 60,
|
|
events: [
|
|
{
|
|
effect: { amount: 200, type: "prayers_gain" },
|
|
id: "celestial_meadow_prayer",
|
|
text: "Your disciples pause their exploration to offer a spontaneous group prayer. The goddess, apparently, was listening.",
|
|
},
|
|
{
|
|
effect: { materialId: "celestial_dust", quantity: 2, type: "sacred_material_gain" },
|
|
id: "celestial_meadow_dust",
|
|
text: "A shower of celestial dust drifts down from above — several disciples hold out their hands.",
|
|
},
|
|
],
|
|
id: "celestial_meadow",
|
|
name: "The Celestial Meadow",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_petal", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "celestial_dust", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_celestial_garden",
|
|
},
|
|
{
|
|
description: "A garden path lined with divine blooms whose petals chime softly in a wind that comes from no discernible direction.",
|
|
durationSeconds: 90,
|
|
events: [
|
|
{
|
|
effect: { amount: 500, type: "prayers_gain" },
|
|
id: "chiming_path_resonance",
|
|
text: "The chiming of the divine blooms aligns briefly into a hymn. Your disciples join in from memory.",
|
|
},
|
|
{
|
|
effect: { materialId: "divine_petal", quantity: 3, type: "sacred_material_gain" },
|
|
id: "chiming_path_petals",
|
|
text: "A gust of the sourceless wind scatters a cascade of petals across the path. Your disciples gather them eagerly.",
|
|
},
|
|
],
|
|
id: "chiming_path",
|
|
name: "The Chiming Path",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_petal", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "prayer_crystal", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_celestial_garden",
|
|
},
|
|
{
|
|
description: "The garden's sacred heart, where the oldest divine tree grows — its roots reaching down into the foundation of the goddess's realm.",
|
|
durationSeconds: 120,
|
|
events: [
|
|
{
|
|
effect: { amount: 1500, type: "prayers_gain" },
|
|
id: "sacred_tree_blessing",
|
|
text: "Your disciples press their hands to the ancient bark. Something vast and patient notices them.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "sacred_tree_test",
|
|
text: "The tree's guardians test your disciples' worthiness. Several do not pass and are gently escorted out.",
|
|
},
|
|
],
|
|
id: "sacred_tree",
|
|
name: "The Sacred Tree",
|
|
possibleMaterials: [
|
|
{ materialId: "celestial_dust", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "divine_petal", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
{ materialId: "prayer_crystal", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_celestial_garden",
|
|
},
|
|
// ── Crystal Sanctum ──────────────────────────────────────────────────────
|
|
{
|
|
description: "Corridors of living crystal where divine knowledge has been stored in crystalline form — some of it loud enough to hear if you stand still.",
|
|
durationSeconds: 180,
|
|
events: [
|
|
{
|
|
effect: { amount: 1500, type: "prayers_gain" },
|
|
id: "crystal_halls_resonance",
|
|
text: "A resonance cascade runs through the halls, and your disciples absorb it before it can dissipate.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.03, type: "disciple_loss" },
|
|
id: "crystal_halls_shatter",
|
|
text: "Several disciples trigger a harmonic shatter event and are knocked back by the blast.",
|
|
},
|
|
],
|
|
id: "crystal_halls",
|
|
name: "The Crystal Halls",
|
|
possibleMaterials: [
|
|
{ materialId: "sanctum_shard", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "holy_ink", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_crystal_sanctum",
|
|
},
|
|
{
|
|
description: "The sanctum's innermost chamber, where the oracle constructs reside in silent contemplation. Visitors are permitted but not encouraged.",
|
|
durationSeconds: 300,
|
|
events: [
|
|
{
|
|
effect: { materialId: "oracle_lens_fragment", quantity: 1, type: "sacred_material_gain" },
|
|
id: "oracle_chamber_fragment",
|
|
text: "An oracle construct drops a fragment of its primary lens without noticing. Your disciples collect it carefully.",
|
|
},
|
|
{
|
|
effect: { amount: 5000, type: "prayers_gain" },
|
|
id: "oracle_chamber_vision",
|
|
text: "One of your disciples receives a brief vision from the oracle. They return shaken but inspired.",
|
|
},
|
|
],
|
|
id: "oracle_chamber",
|
|
name: "The Oracle's Chamber",
|
|
possibleMaterials: [
|
|
{ materialId: "holy_ink", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "oracle_lens_fragment", maxQuantity: 1, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_crystal_sanctum",
|
|
},
|
|
{
|
|
description: "A reading room where crystallised scripture lines the walls from floor to ceiling. The texts update themselves as new prayers are offered.",
|
|
durationSeconds: 240,
|
|
events: [
|
|
{
|
|
effect: { amount: 8000, type: "prayers_gain" },
|
|
id: "scripture_room_reading",
|
|
text: "Your disciples spend time reading. The scripture seems to read them back.",
|
|
},
|
|
{
|
|
effect: { materialId: "sanctum_shard", quantity: 3, type: "sacred_material_gain" },
|
|
id: "scripture_room_shed",
|
|
text: "A scripture panel sheds crystalline shards as its text is updated. Your disciples collect the discards.",
|
|
},
|
|
],
|
|
id: "scripture_room",
|
|
name: "The Scripture Room",
|
|
possibleMaterials: [
|
|
{ materialId: "sanctum_shard", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "holy_ink", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_crystal_sanctum",
|
|
},
|
|
{
|
|
description: "The sanctum's bell tower, whose crystal bells ring only when a mortal somewhere achieves genuine enlightenment.",
|
|
durationSeconds: 420,
|
|
events: [
|
|
{
|
|
effect: { amount: 25_000, type: "prayers_gain" },
|
|
id: "bell_tower_chime",
|
|
text: "The bells chime — somewhere, someone has understood. Your disciples feel the ripple of it.",
|
|
},
|
|
{
|
|
effect: { materialId: "oracle_lens_fragment", quantity: 1, type: "sacred_material_gain" },
|
|
id: "bell_tower_fragment",
|
|
text: "The bell tower's oldest crystal bell releases a shard at the peak of its resonance. Your disciples catch it mid-air.",
|
|
},
|
|
],
|
|
id: "bell_tower",
|
|
name: "The Bell Tower",
|
|
possibleMaterials: [
|
|
{ materialId: "holy_ink", maxQuantity: 4, minQuantity: 1, weight: 4 },
|
|
{ materialId: "oracle_lens_fragment", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
{ materialId: "sanctum_shard", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_crystal_sanctum",
|
|
},
|
|
// ── Astral Cathedral ─────────────────────────────────────────────────────
|
|
{
|
|
description: "The high rafters of the cathedral where seraphs rest between duties. The light here has weight and warmth.",
|
|
durationSeconds: 360,
|
|
events: [
|
|
{
|
|
effect: { materialId: "seraph_feather", quantity: 1, type: "sacred_material_gain" },
|
|
id: "seraph_roost_feather",
|
|
text: "A seraph sheds a feather during a stretching exercise, utterly unbothered by your disciples below.",
|
|
},
|
|
{
|
|
effect: { amount: 25_000, type: "prayers_gain" },
|
|
id: "seraph_roost_blessing",
|
|
text: "A passing seraph blesses your disciples without breaking stride. The energy of it lingers for hours.",
|
|
},
|
|
],
|
|
id: "seraph_roost",
|
|
name: "The Seraph Roost",
|
|
possibleMaterials: [
|
|
{ materialId: "seraph_feather", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "choir_essence", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
],
|
|
zoneId: "goddess_astral_cathedral",
|
|
},
|
|
{
|
|
description: "The cathedral's central nave, where the choir sings continuously and the resonance physically alters the space around it.",
|
|
durationSeconds: 540,
|
|
events: [
|
|
{
|
|
effect: { amount: 100_000, type: "prayers_gain" },
|
|
id: "astral_nave_chorus",
|
|
text: "Your disciples join the choir's refrain for one verse. The goddess takes note.",
|
|
},
|
|
{
|
|
effect: { materialId: "astral_glass", quantity: 1, type: "sacred_material_gain" },
|
|
id: "astral_nave_crystal",
|
|
text: "Where the choir's harmonics focus, astral glass forms spontaneously. A small piece breaks off cleanly.",
|
|
},
|
|
],
|
|
id: "astral_nave",
|
|
name: "The Astral Nave",
|
|
possibleMaterials: [
|
|
{ materialId: "choir_essence", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "astral_glass", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_astral_cathedral",
|
|
},
|
|
{
|
|
description: "The cathedral's crypt, where past seraphs have left offerings — and where the offerings have taken on a life of their own.",
|
|
durationSeconds: 480,
|
|
events: [
|
|
{
|
|
effect: { amount: 75_000, type: "prayers_gain" },
|
|
id: "crypt_offering_resonance",
|
|
text: "The ancient offerings resonate in your disciples' presence and release accumulated prayer energy.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.03, type: "disciple_loss" },
|
|
id: "crypt_offering_guardian",
|
|
text: "A guardian of the crypt's oldest offerings challenges your disciples. Not all are quick enough to withdraw politely.",
|
|
},
|
|
],
|
|
id: "cathedral_crypt",
|
|
name: "The Cathedral Crypt",
|
|
possibleMaterials: [
|
|
{ materialId: "choir_essence", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "seraph_feather", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_astral_cathedral",
|
|
},
|
|
{
|
|
description: "The soaring spire above the cathedral — the highest point of any constructed divine structure, touching the boundary between the astral and the divine.",
|
|
durationSeconds: 720,
|
|
events: [
|
|
{
|
|
effect: { amount: 300_000, type: "prayers_gain" },
|
|
id: "cathedral_spire_elevation",
|
|
text: "At this height, your disciples' prayers travel farther than they ever have. The goddess hears every word.",
|
|
},
|
|
{
|
|
effect: { materialId: "astral_glass", quantity: 2, type: "sacred_material_gain" },
|
|
id: "cathedral_spire_formation",
|
|
text: "The spire's tip is in constant contact with astral currents. Your disciples scrape loose astral glass from its surface.",
|
|
},
|
|
],
|
|
id: "cathedral_spire",
|
|
name: "The Cathedral Spire",
|
|
possibleMaterials: [
|
|
{ materialId: "astral_glass", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "choir_essence", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
{ materialId: "seraph_feather", maxQuantity: 1, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_astral_cathedral",
|
|
},
|
|
// ── Empyrean Citadel ─────────────────────────────────────────────────────
|
|
{
|
|
description: "The citadel's weapon-forging district, where divine alloy is hammered into arms for the celestial host. The sound never stops.",
|
|
durationSeconds: 600,
|
|
events: [
|
|
{
|
|
effect: { materialId: "empyrean_ore", quantity: 3, type: "sacred_material_gain" },
|
|
id: "forge_district_ore",
|
|
text: "Your disciples find a cache of empyrean ore that fell behind a furnace and was forgotten.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "forge_district_heat",
|
|
text: "Several disciples venture too close to the divine furnaces and are forced to retreat.",
|
|
},
|
|
],
|
|
id: "forge_district",
|
|
name: "The Forge District",
|
|
possibleMaterials: [
|
|
{ materialId: "empyrean_ore", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_alloy", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_empyrean_citadel",
|
|
},
|
|
{
|
|
description: "The great hall where the champions of the citadel are recognised and their deeds recorded on walls that will outlast the universe.",
|
|
durationSeconds: 900,
|
|
events: [
|
|
{
|
|
effect: { materialId: "celestial_medal", quantity: 1, type: "sacred_material_gain" },
|
|
id: "champions_hall_medal",
|
|
text: "Your disciples find an unclaimed medal behind the Hall's oldest display case. The name on the back is illegible.",
|
|
},
|
|
{
|
|
effect: { amount: 2_000_000_000, type: "prayers_gain" },
|
|
id: "champions_hall_inspiration",
|
|
text: "Studying the deeds of the champions inspires your disciples to exceptional devotion.",
|
|
},
|
|
],
|
|
id: "champions_hall",
|
|
name: "The Champions Hall",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_alloy", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "celestial_medal", maxQuantity: 1, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_empyrean_citadel",
|
|
},
|
|
{
|
|
description: "The outer ramparts of the citadel, where sentinels have stood watch for millennia. The view from here encompasses all of creation.",
|
|
durationSeconds: 720,
|
|
events: [
|
|
{
|
|
effect: { amount: 1_000_000_000, type: "prayers_gain" },
|
|
id: "ramparts_vista",
|
|
text: "Your disciples spend time contemplating creation from the ramparts. The perspective is transformative.",
|
|
},
|
|
{
|
|
effect: { materialId: "empyrean_ore", quantity: 2, type: "sacred_material_gain" },
|
|
id: "ramparts_masonry",
|
|
text: "The citadel's masonry sheds empyrean ore fragments during the daily resonance cycle. Your disciples collect them.",
|
|
},
|
|
],
|
|
id: "outer_ramparts",
|
|
name: "The Outer Ramparts",
|
|
possibleMaterials: [
|
|
{ materialId: "empyrean_ore", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_alloy", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_empyrean_citadel",
|
|
},
|
|
{
|
|
description: "The citadel's war council chamber, where every major celestial engagement has been planned. The maps on the walls show conflicts that have not yet happened.",
|
|
durationSeconds: 1200,
|
|
events: [
|
|
{
|
|
effect: { amount: 5_000_000_000, type: "prayers_gain" },
|
|
id: "war_council_strategy",
|
|
text: "Your disciples study the future battle maps. Several return with a certainty they cannot explain.",
|
|
},
|
|
{
|
|
effect: { materialId: "celestial_medal", quantity: 1, type: "sacred_material_gain" },
|
|
id: "war_council_commendation",
|
|
text: "The war council votes to award your disciples a commendation medal for their courage in exploration.",
|
|
},
|
|
],
|
|
id: "war_council",
|
|
name: "The War Council",
|
|
possibleMaterials: [
|
|
{ materialId: "celestial_medal", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "divine_alloy", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "empyrean_ore", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_empyrean_citadel",
|
|
},
|
|
// ── Primordial Springs ───────────────────────────────────────────────────
|
|
{
|
|
description: "The main basin of the primordial springs — shallow enough to approach, deep enough to understand that you are standing in the source of everything.",
|
|
durationSeconds: 900,
|
|
events: [
|
|
{
|
|
effect: { materialId: "creation_water", quantity: 3, type: "sacred_material_gain" },
|
|
id: "springs_basin_water",
|
|
text: "Your disciples carefully collect water from the shallows. Each vial is slightly different.",
|
|
},
|
|
{
|
|
effect: { amount: 500_000_000_000, type: "prayers_gain" },
|
|
id: "springs_basin_overflow",
|
|
text: "A minor overflow event floods the basin's edges with creation energy. Your disciples absorb it instinctively.",
|
|
},
|
|
],
|
|
id: "springs_basin",
|
|
name: "The Springs Basin",
|
|
possibleMaterials: [
|
|
{ materialId: "creation_water", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "primordial_essence", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_primordial_springs",
|
|
},
|
|
{
|
|
description: "The deepest accessible point of the springs — where the creation energy runs so thick it has begun to crystallise.",
|
|
durationSeconds: 1800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "genesis_crystal", quantity: 1, type: "sacred_material_gain" },
|
|
id: "genesis_pools_crystal",
|
|
text: "A genesis crystal forms spontaneously at your disciples' feet. They stand very still until it finishes.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.06, type: "disciple_loss" },
|
|
id: "genesis_pools_overwhelm",
|
|
text: "The raw creation energy proves too intense for some disciples, who are displaced from the pools.",
|
|
},
|
|
],
|
|
id: "genesis_pools",
|
|
name: "The Genesis Pools",
|
|
possibleMaterials: [
|
|
{ materialId: "primordial_essence", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "genesis_crystal", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_primordial_springs",
|
|
},
|
|
{
|
|
description: "A cascade where creation water falls from an impossible height before it reaches the basin — catching the spray is considered a blessing.",
|
|
durationSeconds: 1200,
|
|
events: [
|
|
{
|
|
effect: { amount: 1_000_000_000_000, type: "prayers_gain" },
|
|
id: "creation_cascade_spray",
|
|
text: "Your disciples stand in the cascade's spray. They come back renewed in ways none of them can articulate.",
|
|
},
|
|
{
|
|
effect: { materialId: "creation_water", quantity: 2, type: "sacred_material_gain" },
|
|
id: "creation_cascade_collection",
|
|
text: "Your disciples position collection vessels at the cascade's base. The water fills them quickly.",
|
|
},
|
|
],
|
|
id: "creation_cascade",
|
|
name: "The Creation Cascade",
|
|
possibleMaterials: [
|
|
{ materialId: "creation_water", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "primordial_essence", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_primordial_springs",
|
|
},
|
|
{
|
|
description: "An island in the springs' centre where nothing has been created yet — pure potential, unformed, waiting. Disciples report feeling deeply uncomfortable and deeply at peace simultaneously.",
|
|
durationSeconds: 2400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "genesis_crystal", quantity: 2, type: "sacred_material_gain" },
|
|
id: "unformed_isle_crystallisation",
|
|
text: "The unformed potential on the island begins to crystallise around your disciples. They bring a piece back.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.07, type: "disciple_loss" },
|
|
id: "unformed_isle_dissolution",
|
|
text: "Several disciples are temporarily dissolved by the unformed potential and must be reconstituted at the basin's edge.",
|
|
},
|
|
],
|
|
id: "unformed_isle",
|
|
name: "The Unformed Isle",
|
|
possibleMaterials: [
|
|
{ materialId: "genesis_crystal", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "primordial_essence", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
{ materialId: "creation_water", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_primordial_springs",
|
|
},
|
|
// ── Eternal Firmament ────────────────────────────────────────────────────
|
|
{
|
|
description: "An observatory built into the firmament's outer edge — the highest point from which the universe can be observed without leaving it.",
|
|
durationSeconds: 1800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "firmament_stone", quantity: 2, type: "sacred_material_gain" },
|
|
id: "eternal_observatory_stone",
|
|
text: "Small fragments of firmament stone break loose as your disciples adjust the observatory's instruments.",
|
|
},
|
|
{
|
|
effect: { amount: 1e16, type: "prayers_gain" },
|
|
id: "eternal_observatory_sight",
|
|
text: "From this height, your disciples witness every prayer ever offered simultaneously. It is overwhelming and beautiful.",
|
|
},
|
|
],
|
|
id: "eternal_observatory",
|
|
name: "The Eternal Observatory",
|
|
possibleMaterials: [
|
|
{ materialId: "firmament_stone", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "divine_light_shard", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_eternal_firmament",
|
|
},
|
|
{
|
|
description: "The firmament's great archive — where every divine event, every prayer, every moment of faith is recorded in materials that cannot be destroyed.",
|
|
durationSeconds: 3600,
|
|
events: [
|
|
{
|
|
effect: { materialId: "eternity_fragment", quantity: 1, type: "sacred_material_gain" },
|
|
id: "divine_archive_fragment",
|
|
text: "A shelf in the archive collapses slightly, releasing an eternity fragment that was wedged behind it. Your disciples catch it.",
|
|
},
|
|
{
|
|
effect: { materialId: "divine_light_shard", quantity: 2, type: "sacred_material_gain" },
|
|
id: "divine_archive_light",
|
|
text: "Several divine light shards break free from an ancient display case when the archive resonates with a new prayer.",
|
|
},
|
|
],
|
|
id: "divine_archive",
|
|
name: "The Divine Archive",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_light_shard", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "eternity_fragment", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_eternal_firmament",
|
|
},
|
|
{
|
|
description: "The firmament's boundary wall — where the divine realm ends and the void begins. Looking over the edge is permitted, but not recommended.",
|
|
durationSeconds: 2700,
|
|
events: [
|
|
{
|
|
effect: { amount: 1e18, type: "prayers_gain" },
|
|
id: "boundary_wall_edge",
|
|
text: "Your disciples peer over the boundary. On the other side of the void, something very far away notices them back.",
|
|
},
|
|
{
|
|
effect: { materialId: "firmament_stone", quantity: 3, type: "sacred_material_gain" },
|
|
id: "boundary_wall_erosion",
|
|
text: "The perpetual wind from the void erodes firmament stone chips from the wall's outer face. Your disciples collect them.",
|
|
},
|
|
],
|
|
id: "boundary_wall",
|
|
name: "The Boundary Wall",
|
|
possibleMaterials: [
|
|
{ materialId: "firmament_stone", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_light_shard", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_eternal_firmament",
|
|
},
|
|
{
|
|
description: "A lighthouse built at the firmament's highest point to guide returning divine beings home. Its light has not gone out in recorded history.",
|
|
durationSeconds: 4800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "eternity_fragment", quantity: 2, type: "sacred_material_gain" },
|
|
id: "eternal_lighthouse_fragments",
|
|
text: "The lighthouse's beam cracks loose eternity fragments from the firmament wall with each rotation. Your disciples collect the debris.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "eternal_lighthouse_disorientation",
|
|
text: "The lighthouse's light disorients several disciples who look directly at it. They lose their way temporarily.",
|
|
},
|
|
],
|
|
id: "eternal_lighthouse",
|
|
name: "The Eternal Lighthouse",
|
|
possibleMaterials: [
|
|
{ materialId: "eternity_fragment", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "divine_light_shard", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "firmament_stone", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_eternal_firmament",
|
|
},
|
|
// ── Sacred Grove ─────────────────────────────────────────────────────────
|
|
{
|
|
description: "The grove's outermost ring, where ancient trees have grown together into a living canopy that screens out all light save the divine.",
|
|
durationSeconds: 3600,
|
|
events: [
|
|
{
|
|
effect: { amount: 1e20, type: "prayers_gain" },
|
|
id: "canopy_ring_prayers",
|
|
text: "The living canopy focuses your disciples' prayers into a single column of devotion that reaches the goddess directly.",
|
|
},
|
|
{
|
|
effect: { materialId: "grove_resin", quantity: 3, type: "sacred_material_gain" },
|
|
id: "canopy_ring_resin",
|
|
text: "The oldest trees in the ring release resin in response to your disciples' presence. It pools at the roots.",
|
|
},
|
|
],
|
|
id: "canopy_ring",
|
|
name: "The Canopy Ring",
|
|
possibleMaterials: [
|
|
{ materialId: "grove_resin", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "luminous_leaf", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_sacred_grove",
|
|
},
|
|
{
|
|
description: "A clearing deep in the grove where divine light falls in columns and the ground glows softly with accumulated radiance.",
|
|
durationSeconds: 5400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "luminous_leaf", quantity: 2, type: "sacred_material_gain" },
|
|
id: "radiant_clearing_leaves",
|
|
text: "Leaves drift down from the canopy, each one glowing. Your disciples catch them before they touch the ground.",
|
|
},
|
|
{
|
|
effect: { amount: 1e22, type: "prayers_gain" },
|
|
id: "radiant_clearing_meditation",
|
|
text: "Your disciples meditate in the light columns. The prayers that emerge are the deepest they have ever offered.",
|
|
},
|
|
],
|
|
id: "radiant_clearing",
|
|
name: "The Radiant Clearing",
|
|
possibleMaterials: [
|
|
{ materialId: "luminous_leaf", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "grove_resin", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_sacred_grove",
|
|
},
|
|
{
|
|
description: "The base of the grove's elder tree — a tree so old its roots have grown into the foundations of divinity itself.",
|
|
durationSeconds: 7200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "sacred_heartwood", quantity: 1, type: "sacred_material_gain" },
|
|
id: "elder_roots_heartwood",
|
|
text: "A fragment of heartwood breaks from an exposed root naturally. Your disciples treat it with the reverence it deserves.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "elder_roots_rejection",
|
|
text: "The elder tree's roots test the worthiness of your disciples. Several are gently but firmly expelled from the area.",
|
|
},
|
|
],
|
|
id: "elder_roots",
|
|
name: "The Elder Roots",
|
|
possibleMaterials: [
|
|
{ materialId: "sacred_heartwood", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "grove_resin", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "luminous_leaf", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_sacred_grove",
|
|
},
|
|
{
|
|
description: "The grove's summit — where the eldest trees have grown so tall their crowns pierce the veil and exist in two realms simultaneously.",
|
|
durationSeconds: 10_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "sacred_heartwood", quantity: 2, type: "sacred_material_gain" },
|
|
id: "grove_summit_canopy",
|
|
text: "The crowns of the summit trees shed heartwood fragments where they pass through the veil. Your disciples collect the sacred debris.",
|
|
},
|
|
{
|
|
effect: { amount: 1e25, type: "prayers_gain" },
|
|
id: "grove_summit_transcendence",
|
|
text: "At the summit, your disciples briefly exist in both realms. Their prayers travel farther than any that have come before.",
|
|
},
|
|
],
|
|
id: "grove_summit",
|
|
name: "The Grove Summit",
|
|
possibleMaterials: [
|
|
{ materialId: "sacred_heartwood", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "luminous_leaf", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "grove_resin", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_sacred_grove",
|
|
},
|
|
// ── Luminous Expanse ─────────────────────────────────────────────────────
|
|
{
|
|
description: "The shore of the luminous expanse — where solid ground meets the sea of light and the boundary shimmers with captured radiance.",
|
|
durationSeconds: 5400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "captured_radiance", quantity: 3, type: "sacred_material_gain" },
|
|
id: "luminous_shore_collection",
|
|
text: "Waves of light lap at the shore, depositing captured radiance like sea foam. Your disciples scoop it into vessels.",
|
|
},
|
|
{
|
|
effect: { amount: 1e24, type: "prayers_gain" },
|
|
id: "luminous_shore_reflection",
|
|
text: "The reflected light shows your disciples' prayers magnified back at them. The clarity is profound.",
|
|
},
|
|
],
|
|
id: "luminous_shore",
|
|
name: "The Luminous Shore",
|
|
possibleMaterials: [
|
|
{ materialId: "captured_radiance", maxQuantity: 5, minQuantity: 3, weight: 5 },
|
|
{ materialId: "radiance_pool", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_luminous_expanse",
|
|
},
|
|
{
|
|
description: "A deep pool in the expanse where radiance has collected over eons into a liquid form. Wading in it is an act of faith.",
|
|
durationSeconds: 7200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "radiance_pool", quantity: 2, type: "sacred_material_gain" },
|
|
id: "deep_pool_radiance",
|
|
text: "Your disciples wade into the pool and emerge with radiance clinging to them in liquid form. It does not evaporate.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "deep_pool_immersion",
|
|
text: "Several disciples wade too deep and are temporarily absorbed by the radiance. They return... unchanged but thoughtful.",
|
|
},
|
|
],
|
|
id: "deep_pool",
|
|
name: "The Deep Pool",
|
|
possibleMaterials: [
|
|
{ materialId: "radiance_pool", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "captured_radiance", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_luminous_expanse",
|
|
},
|
|
{
|
|
description: "The absolute centre of the luminous expanse — where all the light originates. The core pulses rhythmically, like breathing.",
|
|
durationSeconds: 10_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "light_core", quantity: 1, type: "sacred_material_gain" },
|
|
id: "radiance_core_fragment",
|
|
text: "The breathing pulse of the core releases a fragment at its apex. Your disciples collect it before it can re-integrate.",
|
|
},
|
|
{
|
|
effect: { amount: 1e27, type: "prayers_gain" },
|
|
id: "radiance_core_pulse",
|
|
text: "Your disciples synchronise their prayers with the core's breathing. For one magnificent moment, they breathe with divinity.",
|
|
},
|
|
],
|
|
id: "radiance_core",
|
|
name: "The Radiance Core",
|
|
possibleMaterials: [
|
|
{ materialId: "light_core", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "radiance_pool", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "captured_radiance", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_luminous_expanse",
|
|
},
|
|
{
|
|
description: "Columns of pure light rising from the expanse's floor to its ceiling — each one a prayer that became so strong it solidified.",
|
|
durationSeconds: 14_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "light_core", quantity: 2, type: "sacred_material_gain" },
|
|
id: "prayer_columns_cores",
|
|
text: "Two prayer columns complete their ascension and release their light cores as they dissolve into the expanse.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "prayer_columns_overwhelm",
|
|
text: "Several disciples stand too close when a new column forms. The instantaneous solidification is disorienting.",
|
|
},
|
|
],
|
|
id: "prayer_columns",
|
|
name: "The Prayer Columns",
|
|
possibleMaterials: [
|
|
{ materialId: "light_core", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "radiance_pool", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
{ materialId: "captured_radiance", maxQuantity: 5, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_luminous_expanse",
|
|
},
|
|
// ── Heavenly Forge ───────────────────────────────────────────────────────
|
|
{
|
|
description: "The antechamber of the heavenly forge — where materials are prepared and disciples learn what they are about to witness.",
|
|
durationSeconds: 7200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "forge_scale", quantity: 3, type: "sacred_material_gain" },
|
|
id: "forge_antechamber_scales",
|
|
text: "The celestial creatures awaiting processing shed scales in the warm antechamber. Your disciples collect them politely.",
|
|
},
|
|
{
|
|
effect: { amount: 1e28, type: "prayers_gain" },
|
|
id: "forge_antechamber_preparation",
|
|
text: "Preparing to witness the forge requires prayer. Your disciples offer theirs together.",
|
|
},
|
|
],
|
|
id: "forge_antechamber",
|
|
name: "The Forge Antechamber",
|
|
possibleMaterials: [
|
|
{ materialId: "forge_scale", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_slag", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_heavenly_forge",
|
|
},
|
|
{
|
|
description: "The forge's central burning chamber — divine fire so hot it refines the soul of whatever is placed within it.",
|
|
durationSeconds: 10_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "divine_slag", quantity: 2, type: "sacred_material_gain" },
|
|
id: "burning_chamber_slag",
|
|
text: "The refinement process ejects divine slag from the burning chamber's vents. Your disciples gather it from the collection trays.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "burning_chamber_heat",
|
|
text: "Several disciples underestimate the radiated heat and must be carried out by the others.",
|
|
},
|
|
],
|
|
id: "burning_chamber",
|
|
name: "The Burning Chamber",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_slag", maxQuantity: 4, minQuantity: 2, weight: 5 },
|
|
{ materialId: "forge_scale", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_heavenly_forge",
|
|
},
|
|
{
|
|
description: "The cooling vault where newly forged divine items rest — the temperature here is merely scorching, and the rejected gems settle here.",
|
|
durationSeconds: 14_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "forge_gem", quantity: 1, type: "sacred_material_gain" },
|
|
id: "cooling_vault_gem",
|
|
text: "A forge gem rolls from a cooling rack to the floor. Your disciples collect it before it can roll somewhere unreachable.",
|
|
},
|
|
{
|
|
effect: { amount: 1e30, type: "prayers_gain" },
|
|
id: "cooling_vault_presence",
|
|
text: "The presence of so many completed divine items inspires your disciples to fervent prayer.",
|
|
},
|
|
],
|
|
id: "cooling_vault",
|
|
name: "The Cooling Vault",
|
|
possibleMaterials: [
|
|
{ materialId: "forge_gem", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "divine_slag", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "forge_scale", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_heavenly_forge",
|
|
},
|
|
{
|
|
description: "The forge master's sanctum — a private workshop where the most powerful divine weapons have been conceived. The blueprints on the walls are weapons that have never needed to be made.",
|
|
durationSeconds: 18_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "forge_gem", quantity: 2, type: "sacred_material_gain" },
|
|
id: "forge_master_sanctum_gems",
|
|
text: "The forge master has left several rejected prototype gems in a drawer marked 'insufficient.' Your disciples beg to differ.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.06, type: "disciple_loss" },
|
|
id: "forge_master_sanctum_test",
|
|
text: "The forge master tests your disciples' metallurgical knowledge. Several fail and are asked to study more before returning.",
|
|
},
|
|
],
|
|
id: "forge_master_sanctum",
|
|
name: "The Forge Master's Sanctum",
|
|
possibleMaterials: [
|
|
{ materialId: "forge_gem", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "divine_slag", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
{ materialId: "forge_scale", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_heavenly_forge",
|
|
},
|
|
// ── Oracle Sanctum ───────────────────────────────────────────────────────
|
|
{
|
|
description: "The oracle sanctum's entrance hall — lined with prophecies that have already come true, displayed as a reminder of what is possible.",
|
|
durationSeconds: 10_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "vision_residue", quantity: 3, type: "sacred_material_gain" },
|
|
id: "prophecy_hall_residue",
|
|
text: "The fulfilled prophecy displays shed vision residue where they vibrate in sympathetic resonance. Your disciples collect it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e31, type: "prayers_gain" },
|
|
id: "prophecy_hall_reflection",
|
|
text: "Reading confirmed prophecies fills your disciples with awe at the scale of divine foresight.",
|
|
},
|
|
],
|
|
id: "prophecy_hall",
|
|
name: "The Prophecy Hall",
|
|
possibleMaterials: [
|
|
{ materialId: "vision_residue", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "prophecy_crystal", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_oracle_sanctum",
|
|
},
|
|
{
|
|
description: "The sanctum's vision pool — where oracles submerge themselves to receive prophecy. The water carries the echo of every vision ever seen here.",
|
|
durationSeconds: 14_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "prophecy_crystal", quantity: 2, type: "sacred_material_gain" },
|
|
id: "vision_pool_crystals",
|
|
text: "Prophecy crystals drift to the pool's surface following a vision session. Your disciples collect them respectfully.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "vision_pool_intrusion",
|
|
text: "Several disciples peer into the vision pool without preparation. The echoes they see are not meant for uninitiated eyes.",
|
|
},
|
|
],
|
|
id: "vision_pool",
|
|
name: "The Vision Pool",
|
|
possibleMaterials: [
|
|
{ materialId: "prophecy_crystal", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "vision_residue", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_oracle_sanctum",
|
|
},
|
|
{
|
|
description: "The sanctum's sealed vault where unfulfilled prophecies are kept — each one waiting for its moment. The vault hums with potential.",
|
|
durationSeconds: 18_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "fate_shard", quantity: 1, type: "sacred_material_gain" },
|
|
id: "prophecy_vault_shard",
|
|
text: "An unfulfilled prophecy begins its activation sequence early — a fate shard breaks off in the preparation. Your disciples secure it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e33, type: "prayers_gain" },
|
|
id: "prophecy_vault_revelation",
|
|
text: "The vault shares one sealed prophecy with your disciples. They return unable to speak of it, but visibly transformed.",
|
|
},
|
|
],
|
|
id: "prophecy_vault",
|
|
name: "The Prophecy Vault",
|
|
possibleMaterials: [
|
|
{ materialId: "fate_shard", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "prophecy_crystal", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "vision_residue", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_oracle_sanctum",
|
|
},
|
|
{
|
|
description: "The highest oracle tower — where the most powerful seers work, receiving prophecy directly from the goddess without the pool as an intermediary.",
|
|
durationSeconds: 25_200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "fate_shard", quantity: 2, type: "sacred_material_gain" },
|
|
id: "oracle_tower_shards",
|
|
text: "The tower's oracles shed fate shards during their most intense visions. Several fall to the floor unnoticed.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.06, type: "disciple_loss" },
|
|
id: "oracle_tower_broadcast",
|
|
text: "An oracle broadcasts an involuntary vision. Several disciples receive it unprepared and need time to recover.",
|
|
},
|
|
],
|
|
id: "oracle_tower",
|
|
name: "The Oracle Tower",
|
|
possibleMaterials: [
|
|
{ materialId: "fate_shard", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "prophecy_crystal", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "vision_residue", maxQuantity: 3, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_oracle_sanctum",
|
|
},
|
|
// ── Seraph's Nest ────────────────────────────────────────────────────────
|
|
{
|
|
description: "The outer reaches of the seraph's nest — where young seraphs practice flight and lose feathers at a prodigious rate.",
|
|
durationSeconds: 14_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "seraph_down", quantity: 4, type: "sacred_material_gain" },
|
|
id: "nesting_grounds_down",
|
|
text: "Young seraphs practicing their first flights leave clouds of down in their wake. Your disciples wade through it happily.",
|
|
},
|
|
{
|
|
effect: { amount: 1e33, type: "prayers_gain" },
|
|
id: "nesting_grounds_blessing",
|
|
text: "A senior seraph observing the young ones notices your disciples and offers a blessing for their patience.",
|
|
},
|
|
],
|
|
id: "nesting_grounds",
|
|
name: "The Nesting Grounds",
|
|
possibleMaterials: [
|
|
{ materialId: "seraph_down", maxQuantity: 6, minQuantity: 3, weight: 5 },
|
|
{ materialId: "seraph_primary", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_seraphs_nest",
|
|
},
|
|
{
|
|
description: "The nest's flight path — a long corridor of open sky where seraphs travel at full speed. Standing on the observation platform is exhilarating.",
|
|
durationSeconds: 18_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "seraph_primary", quantity: 2, type: "sacred_material_gain" },
|
|
id: "flight_path_feathers",
|
|
text: "Seraphs travelling at full speed occasionally shed primary feathers mid-flight. Your disciples track where they land.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.03, type: "disciple_loss" },
|
|
id: "flight_path_turbulence",
|
|
text: "Several disciples are caught by the turbulence of a seraph banking hard. They are blown some considerable distance.",
|
|
},
|
|
],
|
|
id: "flight_path",
|
|
name: "The Flight Path",
|
|
possibleMaterials: [
|
|
{ materialId: "seraph_primary", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "seraph_down", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_seraphs_nest",
|
|
},
|
|
{
|
|
description: "The inner nest where the eldest seraphs rest — so old they have transcended their original purpose and exist now as pure radiant being.",
|
|
durationSeconds: 25_200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "ascended_quill", quantity: 1, type: "sacred_material_gain" },
|
|
id: "elder_nest_quill",
|
|
text: "An elder seraph completes another ascension and leaves its hollow quill behind, no longer needing it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e36, type: "prayers_gain" },
|
|
id: "elder_nest_proximity",
|
|
text: "Simply being in the presence of the elder seraphs elevates your disciples' prayers beyond what they believed possible.",
|
|
},
|
|
],
|
|
id: "elder_nest",
|
|
name: "The Elder Nest",
|
|
possibleMaterials: [
|
|
{ materialId: "ascended_quill", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "seraph_primary", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "seraph_down", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_seraphs_nest",
|
|
},
|
|
{
|
|
description: "The topmost pinnacle of the seraph's nest — where newly ascended seraphs make their first flight into the infinite divine sky.",
|
|
durationSeconds: 32_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "ascended_quill", quantity: 2, type: "sacred_material_gain" },
|
|
id: "ascension_pinnacle_quills",
|
|
text: "Newly ascended seraphs shed their mortal quills at the pinnacle as they complete the transition. Two fall at your disciples' feet.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "ascension_pinnacle_rapture",
|
|
text: "Witnessing an ascension is more than several disciples can handle. They are found sitting in a daze at the base of the pinnacle.",
|
|
},
|
|
],
|
|
id: "ascension_pinnacle",
|
|
name: "The Ascension Pinnacle",
|
|
possibleMaterials: [
|
|
{ materialId: "ascended_quill", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "seraph_primary", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "seraph_down", maxQuantity: 3, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_seraphs_nest",
|
|
},
|
|
// ── Divine Archive ───────────────────────────────────────────────────────
|
|
{
|
|
description: "The archive's reading room — open to approved disciples, lined with texts that contain everything except what you happen to be looking for.",
|
|
durationSeconds: 18_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "celestial_vellum", quantity: 4, type: "sacred_material_gain" },
|
|
id: "reading_room_vellum",
|
|
text: "Retired texts are disbound and their vellum made available. Your disciples request several sheets.",
|
|
},
|
|
{
|
|
effect: { amount: 1e36, type: "prayers_gain" },
|
|
id: "reading_room_knowledge",
|
|
text: "Your disciples read deeply. When they emerge, they pray more precisely than ever before.",
|
|
},
|
|
],
|
|
id: "reading_room",
|
|
name: "The Reading Room",
|
|
possibleMaterials: [
|
|
{ materialId: "celestial_vellum", maxQuantity: 6, minQuantity: 3, weight: 5 },
|
|
{ materialId: "archive_seal", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_divine_archive",
|
|
},
|
|
{
|
|
description: "The archive's filing chambers — where seals are applied to documents and every record is formally entered into the divine record.",
|
|
durationSeconds: 21_600,
|
|
events: [
|
|
{
|
|
effect: { materialId: "archive_seal", quantity: 2, type: "sacred_material_gain" },
|
|
id: "filing_chambers_seal",
|
|
text: "A batch of archive seals is found to be slightly defective and is replaced. Your disciples are given the defects, which still work perfectly.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.03, type: "disciple_loss" },
|
|
id: "filing_chambers_misfiling",
|
|
text: "Several disciples accidentally misfile themselves into a restricted section and must wait to be retrieved.",
|
|
},
|
|
],
|
|
id: "filing_chambers",
|
|
name: "The Filing Chambers",
|
|
possibleMaterials: [
|
|
{ materialId: "archive_seal", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "celestial_vellum", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_divine_archive",
|
|
},
|
|
{
|
|
description: "The restricted stacks — where texts too dangerous, too sacred, or too contradictory to be read by casual visitors are stored.",
|
|
durationSeconds: 28_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "living_codex_page", quantity: 1, type: "sacred_material_gain" },
|
|
id: "restricted_stacks_page",
|
|
text: "One of the restricted texts objects to its classification and attempts to leave on its own. Your disciples intercept a page.",
|
|
},
|
|
{
|
|
effect: { amount: 1e39, type: "prayers_gain" },
|
|
id: "restricted_stacks_revelation",
|
|
text: "A restricted text allows your disciples to read one sentence. That sentence is enough.",
|
|
},
|
|
],
|
|
id: "restricted_stacks",
|
|
name: "The Restricted Stacks",
|
|
possibleMaterials: [
|
|
{ materialId: "living_codex_page", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "archive_seal", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "celestial_vellum", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_divine_archive",
|
|
},
|
|
{
|
|
description: "The archive's inner sanctum — where the most fundamental records of existence are kept. The room is aware of visitors and takes notes.",
|
|
durationSeconds: 36_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "living_codex_page", quantity: 2, type: "sacred_material_gain" },
|
|
id: "archive_inner_sanctum_pages",
|
|
text: "The inner sanctum drafts a summary of your disciples' visit for its own records. They are given a copy.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "archive_inner_sanctum_scrutiny",
|
|
text: "The archive scrutinises several disciples too closely. They are found wanting in some undefined way and asked to leave.",
|
|
},
|
|
],
|
|
id: "archive_inner_sanctum",
|
|
name: "The Archive Inner Sanctum",
|
|
possibleMaterials: [
|
|
{ materialId: "living_codex_page", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "archive_seal", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "celestial_vellum", maxQuantity: 3, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_divine_archive",
|
|
},
|
|
// ── Consecrated Depths ───────────────────────────────────────────────────
|
|
{
|
|
description: "The upper consecrated chambers — where generations of devotion have saturated the stone so thoroughly it generates warmth without fire.",
|
|
durationSeconds: 21_600,
|
|
events: [
|
|
{
|
|
effect: { materialId: "consecrated_stone", quantity: 3, type: "sacred_material_gain" },
|
|
id: "upper_chambers_stone",
|
|
text: "The warming stone flakes at its surface as it continues to bless its surroundings. Your disciples collect the flakes.",
|
|
},
|
|
{
|
|
effect: { amount: 1e39, type: "prayers_gain" },
|
|
id: "upper_chambers_warmth",
|
|
text: "Your disciples pray in the warm chambers. The accumulated devotion of all who came before joins in.",
|
|
},
|
|
],
|
|
id: "upper_chambers",
|
|
name: "The Upper Chambers",
|
|
possibleMaterials: [
|
|
{ materialId: "consecrated_stone", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "depth_blessing", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_consecrated_depths",
|
|
},
|
|
{
|
|
description: "The sacred springs of the consecrated depths — underground water that has absorbed so much blessing it produces light in complete darkness.",
|
|
durationSeconds: 28_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "depth_blessing", quantity: 3, type: "sacred_material_gain" },
|
|
id: "sacred_springs_depth_blessing",
|
|
text: "Your disciples collect spring water. Each vessel glows softly as it fills.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "sacred_springs_overflow",
|
|
text: "The springs surge unexpectedly. Several disciples are caught in the overflow and swept to the upper passages.",
|
|
},
|
|
],
|
|
id: "sacred_springs",
|
|
name: "The Sacred Springs",
|
|
possibleMaterials: [
|
|
{ materialId: "depth_blessing", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "consecrated_stone", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_consecrated_depths",
|
|
},
|
|
{
|
|
description: "The abyssal chamber — the deepest point of the consecrated depths, where gem formations grow in complete darkness fed by divine groundwater.",
|
|
durationSeconds: 36_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "abyssal_gem", quantity: 1, type: "sacred_material_gain" },
|
|
id: "abyssal_chamber_gem",
|
|
text: "Your disciples locate a recently formed abyssal gem in an untouched geode. They extract it with appropriate reverence.",
|
|
},
|
|
{
|
|
effect: { amount: 1e42, type: "prayers_gain" },
|
|
id: "abyssal_chamber_resonance",
|
|
text: "The abyssal chamber resonates with your disciples' prayers in a frequency that has not been heard here before.",
|
|
},
|
|
],
|
|
id: "abyssal_chamber",
|
|
name: "The Abyssal Chamber",
|
|
possibleMaterials: [
|
|
{ materialId: "abyssal_gem", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "depth_blessing", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "consecrated_stone", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_consecrated_depths",
|
|
},
|
|
{
|
|
description: "The heart of the consecrated depths — where the first consecration rite was performed, and where all subsequent rites draw their power from.",
|
|
durationSeconds: 46_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "abyssal_gem", quantity: 2, type: "sacred_material_gain" },
|
|
id: "consecration_heart_gems",
|
|
text: "The original consecration site continues to generate abyssal gems from pure divine blessing. Your disciples find two.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.06, type: "disciple_loss" },
|
|
id: "consecration_heart_trial",
|
|
text: "The heart tests every visitor's devotion directly. Several disciples are judged and found to need more growth.",
|
|
},
|
|
],
|
|
id: "consecration_heart",
|
|
name: "The Consecration Heart",
|
|
possibleMaterials: [
|
|
{ materialId: "abyssal_gem", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "consecrated_stone", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "depth_blessing", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_consecrated_depths",
|
|
},
|
|
// ── Astral Confluence ────────────────────────────────────────────────────
|
|
{
|
|
description: "The confluence's outer streams — where astral currents from different zones first meet and begin their complex negotiation of coexistence.",
|
|
durationSeconds: 28_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "confluence_shard", quantity: 3, type: "sacred_material_gain" },
|
|
id: "outer_streams_shards",
|
|
text: "Where two streams meet, they generate harmonic shards at the intersection point. Your disciples collect the debris.",
|
|
},
|
|
{
|
|
effect: { amount: 1e42, type: "prayers_gain" },
|
|
id: "outer_streams_harmonics",
|
|
text: "Your disciples pray at the stream junction. The converging astral energy amplifies their devotion dramatically.",
|
|
},
|
|
],
|
|
id: "outer_streams",
|
|
name: "The Outer Streams",
|
|
possibleMaterials: [
|
|
{ materialId: "confluence_shard", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "astral_harmonic", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_astral_confluence",
|
|
},
|
|
{
|
|
description: "The harmonic bridge — a structure built where two major astral streams run parallel, bridging them for easier transit.",
|
|
durationSeconds: 36_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "astral_harmonic", quantity: 2, type: "sacred_material_gain" },
|
|
id: "harmonic_bridge_resonance",
|
|
text: "The bridge vibrates in the streams' shared harmonic. Your disciples capture two harmonics in resonant vessels.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "harmonic_bridge_crossing",
|
|
text: "Several disciples attempt to cross the bridge during a harmonic surge. They end up somewhere else entirely.",
|
|
},
|
|
],
|
|
id: "harmonic_bridge",
|
|
name: "The Harmonic Bridge",
|
|
possibleMaterials: [
|
|
{ materialId: "astral_harmonic", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "confluence_shard", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
],
|
|
zoneId: "goddess_astral_confluence",
|
|
},
|
|
{
|
|
description: "The confluence point — where seven astral streams meet simultaneously and the combined energy forms something that has no name in any divine language.",
|
|
durationSeconds: 50_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "convergence_node", quantity: 1, type: "sacred_material_gain" },
|
|
id: "confluence_point_node",
|
|
text: "The seven streams briefly achieve perfect alignment. A convergence node forms and stabilises before your disciples catch it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e45, type: "prayers_gain" },
|
|
id: "confluence_point_alignment",
|
|
text: "Your disciples pray at the exact moment of confluence. Seven streams carry their prayer in seven directions at once.",
|
|
},
|
|
],
|
|
id: "confluence_point",
|
|
name: "The Confluence Point",
|
|
possibleMaterials: [
|
|
{ materialId: "convergence_node", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "astral_harmonic", maxQuantity: 3, minQuantity: 2, weight: 4 },
|
|
{ materialId: "confluence_shard", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_astral_confluence",
|
|
},
|
|
{
|
|
description: "The still eye at the confluence's centre — where paradoxically the seven streams produce complete stillness. Nothing moves here. Everything is possible.",
|
|
durationSeconds: 64_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "convergence_node", quantity: 2, type: "sacred_material_gain" },
|
|
id: "still_eye_nodes",
|
|
text: "In the stillness, convergence nodes form slowly and completely. Your disciples collect two before the streams shift.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "still_eye_unmooring",
|
|
text: "Several disciples remain in the still eye too long and become temporarily untethered from their sense of direction.",
|
|
},
|
|
],
|
|
id: "still_eye",
|
|
name: "The Still Eye",
|
|
possibleMaterials: [
|
|
{ materialId: "convergence_node", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "astral_harmonic", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "confluence_shard", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_astral_confluence",
|
|
},
|
|
// ── Celestial Throne ─────────────────────────────────────────────────────
|
|
{
|
|
description: "The throne room's antechamber — where petitioners wait to be heard and the air is thick with suppressed hope.",
|
|
durationSeconds: 36_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "throne_gold_leaf", quantity: 3, type: "sacred_material_gain" },
|
|
id: "throne_antechamber_leaves",
|
|
text: "Gold leaf settles from the throne room's updrafts like snow. Your disciples collect what drifts to the antechamber floor.",
|
|
},
|
|
{
|
|
effect: { amount: 1e45, type: "prayers_gain" },
|
|
id: "throne_antechamber_petition",
|
|
text: "Your disciples join the queue of petitioners. When their turn comes, the throne room door opens. That is enough.",
|
|
},
|
|
],
|
|
id: "throne_antechamber",
|
|
name: "The Throne Antechamber",
|
|
possibleMaterials: [
|
|
{ materialId: "throne_gold_leaf", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "sovereignty_gem", maxQuantity: 1, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_celestial_throne",
|
|
},
|
|
{
|
|
description: "The throne room's gallery — where divine decisions are witnessed and the significance of each ruling is carved into the gallery walls in gold.",
|
|
durationSeconds: 50_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "sovereignty_gem", quantity: 1, type: "sacred_material_gain" },
|
|
id: "throne_gallery_gem",
|
|
text: "A sovereignty gem falls from the gallery's most recent carving during the inscription process. Your disciples catch it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e48, type: "prayers_gain" },
|
|
id: "throne_gallery_witnessing",
|
|
text: "Your disciples witness a divine ruling from the gallery. They understand something about justice they did not before.",
|
|
},
|
|
],
|
|
id: "throne_gallery",
|
|
name: "The Throne Gallery",
|
|
possibleMaterials: [
|
|
{ materialId: "sovereignty_gem", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "throne_gold_leaf", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_celestial_throne",
|
|
},
|
|
{
|
|
description: "The throne room itself — the seat of divine authority, where the goddess makes her will known. Visitors are rare and never forget it.",
|
|
durationSeconds: 72_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "crown_fragment", quantity: 1, type: "sacred_material_gain" },
|
|
id: "throne_room_fragment",
|
|
text: "As the goddess renders a particularly weighty decision, a fragment of the crown breaks free. It lands at your disciples' feet.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "throne_room_presence",
|
|
text: "The direct presence of the goddess is more than several disciples can bear. They are gently removed by attendants.",
|
|
},
|
|
],
|
|
id: "throne_room",
|
|
name: "The Throne Room",
|
|
possibleMaterials: [
|
|
{ materialId: "crown_fragment", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "sovereignty_gem", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "throne_gold_leaf", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_celestial_throne",
|
|
},
|
|
{
|
|
description: "The private garden behind the celestial throne — where the goddess retreats between audiences, and where all decisions that will be made have already been decided.",
|
|
durationSeconds: 90_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "crown_fragment", quantity: 2, type: "sacred_material_gain" },
|
|
id: "private_garden_fragments",
|
|
text: "The goddess has set her crown aside in the garden and two fragments rest in the grass. Your disciples collect them before returning.",
|
|
},
|
|
{
|
|
effect: { amount: 1e51, type: "prayers_gain" },
|
|
id: "private_garden_presence",
|
|
text: "Your disciples walk in the goddess's private garden. She does not stop them. The prayers that follow are beyond counting.",
|
|
},
|
|
],
|
|
id: "private_garden",
|
|
name: "The Private Garden",
|
|
possibleMaterials: [
|
|
{ materialId: "crown_fragment", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "sovereignty_gem", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
{ materialId: "throne_gold_leaf", maxQuantity: 3, minQuantity: 2, weight: 2 },
|
|
],
|
|
zoneId: "goddess_celestial_throne",
|
|
},
|
|
// ── Infinite Choir ───────────────────────────────────────────────────────
|
|
{
|
|
description: "The outer choir stalls — where the newest members of the infinite choir learn the oldest songs. Every mistake is a new prayer.",
|
|
durationSeconds: 50_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "choir_note", quantity: 3, type: "sacred_material_gain" },
|
|
id: "outer_stalls_notes",
|
|
text: "Practice notes crystallise and fall when a novice chorister hits an unexpected harmony. Your disciples collect the shards.",
|
|
},
|
|
{
|
|
effect: { amount: 1e51, type: "prayers_gain" },
|
|
id: "outer_stalls_participation",
|
|
text: "Your disciples are invited to join a practice session. They add their voices to the infinite song.",
|
|
},
|
|
],
|
|
id: "outer_stalls",
|
|
name: "The Outer Stalls",
|
|
possibleMaterials: [
|
|
{ materialId: "choir_note", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_resonance", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_infinite_choir",
|
|
},
|
|
{
|
|
description: "The resonance chamber — where the choir's harmonics are amplified and directed. The walls physically vibrate with accumulated song.",
|
|
durationSeconds: 64_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "divine_resonance", quantity: 2, type: "sacred_material_gain" },
|
|
id: "resonance_chamber_capture",
|
|
text: "A peak resonance event crystallises two divine resonances against the chamber wall. Your disciples pry them loose carefully.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "resonance_chamber_overwelm",
|
|
text: "The resonance at peak intensity is physically overwhelming. Several disciples are knocked off their feet.",
|
|
},
|
|
],
|
|
id: "resonance_chamber",
|
|
name: "The Resonance Chamber",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_resonance", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "choir_note", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_infinite_choir",
|
|
},
|
|
{
|
|
description: "The sacred chord vault — where the fundamental harmonics of existence are preserved in crystalline form and protected from degradation.",
|
|
durationSeconds: 79_200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "sacred_chord", quantity: 1, type: "sacred_material_gain" },
|
|
id: "chord_vault_crystallisation",
|
|
text: "A new sacred chord crystallises in the vault — the fundamental frequency of a newly completed star. Your disciples collect it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e54, type: "prayers_gain" },
|
|
id: "chord_vault_listening",
|
|
text: "Your disciples listen to the vault's oldest chord. They understand something about the nature of existence that cannot be put into words.",
|
|
},
|
|
],
|
|
id: "chord_vault",
|
|
name: "The Chord Vault",
|
|
possibleMaterials: [
|
|
{ materialId: "sacred_chord", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "divine_resonance", maxQuantity: 3, minQuantity: 2, weight: 4 },
|
|
{ materialId: "choir_note", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_infinite_choir",
|
|
},
|
|
{
|
|
description: "The conductor's podium at the infinite choir's centre — from here, every voice in the infinite song can be heard and directed. The conductor has never stopped.",
|
|
durationSeconds: 97_200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "sacred_chord", quantity: 2, type: "sacred_material_gain" },
|
|
id: "conductors_podium_chords",
|
|
text: "The conductor signals two new sacred chords into being. They crystallise at the podium's edge and your disciples are permitted to take them.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.06, type: "disciple_loss" },
|
|
id: "conductors_podium_crescendo",
|
|
text: "The conductor calls for a crescendo. Several disciples, caught in the swell, lose themselves briefly in the infinite music.",
|
|
},
|
|
],
|
|
id: "conductors_podium",
|
|
name: "The Conductor's Podium",
|
|
possibleMaterials: [
|
|
{ materialId: "sacred_chord", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "divine_resonance", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "choir_note", maxQuantity: 3, minQuantity: 2, weight: 2 },
|
|
],
|
|
zoneId: "goddess_infinite_choir",
|
|
},
|
|
// ── The Veil ─────────────────────────────────────────────────────────────
|
|
{
|
|
description: "The veil's outer face — where the divine realm ends in a shimmering boundary that is beautiful from this side and, reportedly, equally beautiful from the other.",
|
|
durationSeconds: 64_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "veil_thread", quantity: 3, type: "sacred_material_gain" },
|
|
id: "veil_outer_face_threads",
|
|
text: "The veil sheds threads where it has worn thin. Your disciples collect them before they dissolve.",
|
|
},
|
|
{
|
|
effect: { amount: 1e54, type: "prayers_gain" },
|
|
id: "veil_outer_face_contemplation",
|
|
text: "Your disciples contemplate the boundary between all that is known and all that is not. Their prayers carry that weight.",
|
|
},
|
|
],
|
|
id: "veil_outer_face",
|
|
name: "The Veil's Outer Face",
|
|
possibleMaterials: [
|
|
{ materialId: "veil_thread", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "liminal_essence", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_veil",
|
|
},
|
|
{
|
|
description: "The liminal space within the veil itself — where nothing is fully either side, and everything exists in a state of permanent becoming.",
|
|
durationSeconds: 86_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "liminal_essence", quantity: 2, type: "sacred_material_gain" },
|
|
id: "liminal_space_essence",
|
|
text: "The liminal substance within the veil crystallises momentarily where your disciples' faith intersects with uncertainty.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.05, type: "disciple_loss" },
|
|
id: "liminal_space_dissolution",
|
|
text: "Several disciples begin to undergo their own liminal state within the veil. They are recalled before the process completes.",
|
|
},
|
|
],
|
|
id: "liminal_space",
|
|
name: "The Liminal Space",
|
|
possibleMaterials: [
|
|
{ materialId: "liminal_essence", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "veil_thread", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
],
|
|
zoneId: "goddess_veil",
|
|
},
|
|
{
|
|
description: "The veil's inner face — where it can be seen from the divine side, and where the fragments of what lies beyond press closest.",
|
|
durationSeconds: 108_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "beyond_fragment", quantity: 1, type: "sacred_material_gain" },
|
|
id: "veil_inner_face_fragment",
|
|
text: "A fragment of what lies beyond presses through the veil at a thin point. Your disciples carefully contain it.",
|
|
},
|
|
{
|
|
effect: { amount: 1e57, type: "prayers_gain" },
|
|
id: "veil_inner_face_perspective",
|
|
text: "Seeing the divine realm from the inner face of the veil gives your disciples an entirely new perspective on what they are devoted to.",
|
|
},
|
|
],
|
|
id: "veil_inner_face",
|
|
name: "The Veil's Inner Face",
|
|
possibleMaterials: [
|
|
{ materialId: "beyond_fragment", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "liminal_essence", maxQuantity: 3, minQuantity: 2, weight: 4 },
|
|
{ materialId: "veil_thread", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_veil",
|
|
},
|
|
{
|
|
description: "The tear in the veil — a wound in the boundary that has been carefully managed for longer than recorded history. Looking through it is the closest to truth any mortal has come.",
|
|
durationSeconds: 129_600,
|
|
events: [
|
|
{
|
|
effect: { materialId: "beyond_fragment", quantity: 2, type: "sacred_material_gain" },
|
|
id: "veil_tear_fragments",
|
|
text: "The tear's edges are rich with beyond fragments. Your disciples collect two before the veil's attendants notice.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.07, type: "disciple_loss" },
|
|
id: "veil_tear_truth",
|
|
text: "Several disciples look through the tear. They see something true. It takes time before they can return to ordinary devotion.",
|
|
},
|
|
],
|
|
id: "veil_tear",
|
|
name: "The Veil Tear",
|
|
possibleMaterials: [
|
|
{ materialId: "beyond_fragment", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "liminal_essence", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "veil_thread", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_veil",
|
|
},
|
|
// ── Divine Heart ─────────────────────────────────────────────────────────
|
|
{
|
|
description: "The outer chamber of the divine heart — where the pulse is felt as a physical pressure and the air tastes of warmth and purpose.",
|
|
durationSeconds: 86_400,
|
|
events: [
|
|
{
|
|
effect: { materialId: "heart_pulse", quantity: 3, type: "sacred_material_gain" },
|
|
id: "heart_outer_chamber_pulses",
|
|
text: "Three pulses crystallise as they reach the outer chamber's walls. Your disciples collect them reverently.",
|
|
},
|
|
{
|
|
effect: { amount: 1e57, type: "prayers_gain" },
|
|
id: "heart_outer_chamber_prayer",
|
|
text: "Praying in time with the divine heart's pulse synchronises your disciples' devotion with the goddess's own rhythm.",
|
|
},
|
|
],
|
|
id: "heart_outer_chamber",
|
|
name: "The Heart's Outer Chamber",
|
|
possibleMaterials: [
|
|
{ materialId: "heart_pulse", maxQuantity: 5, minQuantity: 2, weight: 5 },
|
|
{ materialId: "divine_love_crystal", maxQuantity: 2, minQuantity: 1, weight: 2 },
|
|
],
|
|
zoneId: "goddess_divine_heart",
|
|
},
|
|
{
|
|
description: "The love crystal garden — where the divine heart's love has crystallised over aeons into formations of impossible beauty.",
|
|
durationSeconds: 108_000,
|
|
events: [
|
|
{
|
|
effect: { materialId: "divine_love_crystal", quantity: 2, type: "sacred_material_gain" },
|
|
id: "love_garden_crystals",
|
|
text: "New love crystals have formed overnight. Your disciples are permitted to take two.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.04, type: "disciple_loss" },
|
|
id: "love_garden_overwhelm",
|
|
text: "The concentrated love in the garden is more than several disciples can accept without being emotionally unmade.",
|
|
},
|
|
],
|
|
id: "love_garden",
|
|
name: "The Love Crystal Garden",
|
|
possibleMaterials: [
|
|
{ materialId: "divine_love_crystal", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
{ materialId: "heart_pulse", maxQuantity: 4, minQuantity: 2, weight: 4 },
|
|
],
|
|
zoneId: "goddess_divine_heart",
|
|
},
|
|
{
|
|
description: "The inner sanctum of the divine heart — where the beating is so powerful it can be felt in the bones, and the warmth is the warmth of being loved without condition.",
|
|
durationSeconds: 151_200,
|
|
events: [
|
|
{
|
|
effect: { materialId: "heart_ichor", quantity: 1, type: "sacred_material_gain" },
|
|
id: "heart_inner_sanctum_ichor",
|
|
text: "A single droplet of heart ichor escapes the innermost chamber. Your disciples catch it in a vessel prepared for exactly this purpose.",
|
|
},
|
|
{
|
|
effect: { amount: 1e60, type: "prayers_gain" },
|
|
id: "heart_inner_sanctum_union",
|
|
text: "Your disciples experience a moment of complete union with the divine heart. Every prayer they have ever offered is answered simultaneously.",
|
|
},
|
|
],
|
|
id: "heart_inner_sanctum",
|
|
name: "The Heart's Inner Sanctum",
|
|
possibleMaterials: [
|
|
{ materialId: "heart_ichor", maxQuantity: 2, minQuantity: 1, weight: 3 },
|
|
{ materialId: "divine_love_crystal", maxQuantity: 3, minQuantity: 2, weight: 4 },
|
|
{ materialId: "heart_pulse", maxQuantity: 3, minQuantity: 1, weight: 3 },
|
|
],
|
|
zoneId: "goddess_divine_heart",
|
|
},
|
|
{
|
|
description: "The divine heart itself — the source of all divinity, the origin of the goddess, the first thing that ever was and the last thing that will ever be.",
|
|
durationSeconds: 172_800,
|
|
events: [
|
|
{
|
|
effect: { materialId: "heart_ichor", quantity: 2, type: "sacred_material_gain" },
|
|
id: "divine_heart_ichor",
|
|
text: "Two drops of heart ichor fall during a particularly profound pulse. Your disciples collect them with hands that do not stop shaking for hours.",
|
|
},
|
|
{
|
|
effect: { fraction: 0.08, type: "disciple_loss" },
|
|
id: "divine_heart_transcendence",
|
|
text: "Several disciples, in the presence of the divine heart, undergo spontaneous transcendence. They must be retrieved from a higher plane.",
|
|
},
|
|
],
|
|
id: "divine_heart_itself",
|
|
name: "The Divine Heart",
|
|
possibleMaterials: [
|
|
{ materialId: "heart_ichor", maxQuantity: 3, minQuantity: 1, weight: 4 },
|
|
{ materialId: "divine_love_crystal", maxQuantity: 4, minQuantity: 2, weight: 3 },
|
|
{ materialId: "heart_pulse", maxQuantity: 3, minQuantity: 2, weight: 3 },
|
|
],
|
|
zoneId: "goddess_divine_heart",
|
|
},
|
|
];
|