generated from nhcarrigan/template
666a5b2d6d
## What changed and why ### Runestone formula (`prestige.ts`) - Swapped `sqrt` for `cbrt` — much stronger diminishing returns for large gold values - Added base cap of **200** (→ ~1,125 max with all upgrades at 5.625× multiplier) - Prevents extended AFK sessions from producing runestone windfalls that allow immediate upgrade purchasing and rapid prestige chaining ### Prestige threshold formula (`prestige.ts`) - Old: `1,000,000 × 5^n` — exponential, grows impossibly fast, prestige 10+ takes years - New: `1,000,000 × (n+1)²` — polynomial, peaks at ~1 day/run around P8–10, then gets *easier* as the production multiplier overtakes it - Removed `thresholdScaleFactor` constant (no longer needed) ### Production multiplier (`prestige.ts`) - Old: `1.15^n` - New: `1.25^n` — compounds faster, ensures the polynomial threshold eventually gets easy in the late game ### Boss prestige requirements (`bosses.ts`) - Rescaled proportionally from 0–88 range to 0–20 range - The Absolute One now requires prestige **20** (was 88), making transcendence reachable in a few weeks of idle play ### Echo formula (`transcendence.ts`) - Constant changed from 853 → **224** - At the target prestige of 20: `floor(224 / sqrt(20)) = 50 echoes` per transcendence (no meta upgrades) - With all echo_meta upgrades (3.75× total): up to **187 echoes** per transcendence ### Transcendence upgrade costs (`transcendenceUpgrades.ts`) - Old total: **866 echoes** → New total: **400 echoes** (roughly halved across all categories) - Apotheosis still requires **all 15 upgrades** purchased ### Balance fixes (closes #141, #142, #143, #144, #145) - Equipment: `philosophers_stone` click multiplier 2.25→2.5, `crystal_shard` 1.55→1.65 (#144) - Recipes: added `primal_omega_lens` cross-zone click_power recipe at 1.38× (#142) - Adventurers: `celestial_guard` base cost adjusted to smooth tier 14→15→16 cost curve (#145) ### Quest reward rebalancing (closes #136, #137) - Shadow Marshes: buffed `shadow_mere`, `witch_coven`, `plague_ruins` rewards to match combat requirements (#136) - Astral Void: added gold to `void_rift`, increased rewards across all Astral Void quests (#137) ### Boss reward additions (closes #138, #139, #140) - Assigned 9 unassigned adventurer-specific upgrades to Crystalline Spire through Eternal Throne bosses that had empty `upgradeRewards` arrays (#140) ### Combat power documentation (closes #153) - Expanded JSDoc on `computePartyCombatPower` to clarify companion `bossDamage` multiplier behaviour ### Effective adventurer stats (closes #154) - Added `computeEffectiveAdventurerStats` to `tick.ts` and updated `AdventurerCard` to display effective post-multiplier stats ### Adventurer upgrade timing (closes #158) - Audited every adventurer-specific upgrade reward — upgrades now land within the same progression window where that adventurer tier is still a meaningful contributor ### Sync and save fixes (closes #147, #148, #151) - Fixed sync new content count to report only genuinely changed items (#147) - Fixed signature mismatch after first auto-boss completion (#148) - Added auto-buy cap (100) on non-max-tier adventurers (#151) ### Auto-adventurer persistence (closes #156) - Auto-buy preference now preserved across prestige resets ### Broken CDN image (closes #159) - Uploaded missing `auto_adventurer.jpg` to CDN ### Codex unlock hints (closes #146) - Locked codex entries now display a hint generated from `sourceType` and `sourceId` ### Exploration bug fixes (closes #160, #161) - Fixed auto-save race condition discarding exploration materials collected mid-tick (#160) - Fixed exploration areas failing to unlock when zone was unlocked via boss kill or quest completion (#161) ### Concurrent prestige fix (closes #162) - Added optimistic locking via `updatedAt` — concurrent prestige requests return 409 ### Prestige UX (closes #163) - Added `reloadSilent` to game context — no loading screen flash after prestige ### Balance adjustments (closes #164, #165, #166, #167) - Reduced `shadow_mere` CP requirement 5,000,000 → 2,000,000 (#164) - Buffed crystal drops from Shadow Marshes bosses and quests (#165) - Increased runestone yield from 10 → 15 per prestige level (#166) - Daily challenge set always includes a clicks challenge (#167) ### Progression QoL (closes #168, #169) - Added `computeProjectedRunestones()` and persistent `+N On Prestige` resource bar row (#168) - Added `enablePrestigeAnnouncements` setting per player (#169) --- ## Comprehensive balance audit (closes #187, #191, #192, #193, #194, #195, #196, #197, #198) ### Crystal economy fixes - Zeroed crystal rewards for all Zone 7+ boss drops (Celestial Reaches onwards) — crystals are an early/mid-game currency and should not flow freely into the endgame (#187) - Zeroed crystal rewards for all Zone 9+ quest rewards (Infernal Court onwards) — same rationale (#191) ### Achievement additions and fixes - Added quest milestone achievements at 75 quests (10,000 crystals) and 100 quests (15,000 crystals) - Added boss milestone achievement at 50 bosses (15,000 crystals) - Added prestige milestone achievements at P50, P100, P150, P200 — rewarding **runestones** rather than crystals to match the late-game economy - Added gold milestone achievements through 1e90 gold earned - Fixed `quest_eternal` condition from 122 → **112** (actual quest count) — was permanently impossible (#197) - Fixed `fully_equipped` condition from 65 → **78** (actual equipment count after new items) (#197) - Fixed `devourer_slayer` description to remove incorrect zone reference ### Upgrade balance - Fixed Essence Guild multiplier 1.5× → **2×** — was identical to the cheaper Merchant Alliance for 5× the cost (#194) - Raised Void Ascendancy crystal cost 10M → **50M** — was trivially cheap compared to the parallel Celestial Mandate upgrade (100B essence + 50T gold) (#195) - Fixed Sunken Temple quest rewards (gold 2M → 60M, essence 1,500 → 25,000, crystals 75 → 400) — was rewarding less than its easier prerequisite Witch Coven (#193) ### Equipment balance - Buffed Eternal Prism stats to click 5×, combat **3×**, gold **2.5×** — was only marginally better than the free Eternity Stone boss drop for 100M crystals (#196) ### Missing content - Created **13 missing equipment items** for Zones 15–18 (primordial_chaos through the_absolute) that were referenced by late-game boss `equipmentRewards` arrays but never existed in `equipment.ts` (#198): - `chaos_mantle`, `titan_core` (Primordial Chaos) - `expanse_blade`, `void_armour_mk2` (Infinite Expanse) - `cosmos_blade`, `reality_plate` (Reality Forge) - `maelstrom_edge`, `cosmic_plate` (Cosmic Maelstrom) - `primeval_blade`, `ancient_aegis` (Primeval Sanctum) - `absolute_blade`, `eternity_plate`, `omniversal_core` (The Absolute) - Stats scale from combat 14× / gold 9× (Zone 15) up to combat 28× / gold 20× for the final boss drops ### Type system - Extended `AchievementReward` type to support `runestones` field - Updated tick engine achievement processing to award both crystals and runestones --- ## Target progression timeline (optimal play, ~16h/day idle) - First cycle to P20: ~375h (~3.3 weeks) - Each subsequent cycle gets faster as echo upgrades boost income/combat/threshold - Expected **~5 transcendences** before apotheosis at 50–187 echoes/transcendence - **~6 months** to apotheosis for a dedicated player ## Test plan - [ ] Lint, build, and test pipeline passes (100% coverage maintained) - [ ] Prestige threshold at P0 is still 1,000,000 gold - [ ] Prestige runs feel ~1 day long around P8–10 and get easier after - [ ] The Absolute One is locked until prestige 20 - [ ] Transcendence at P20 awards 50 echoes (no meta upgrades) - [ ] All 15 transcendence upgrades cost 400 echoes total - [ ] Bosses in Zones 7+ drop 0 crystals; Zones 1–6 retain crystal drops - [ ] Quests in Zones 9+ reward 0 crystals; Zones 1–8 retain crystal rewards - [ ] Sunken Temple rewards more gold/essence/crystals than Witch Coven - [ ] Essence Guild gives 2× income (stronger than Merchant Alliance 1.5×) - [ ] Void Ascendancy costs 50M crystals - [ ] Eternal Prism stats are click 5×, combat 3×, gold 2.5× - [ ] Late-game bosses (primordial_titan through the_absolute_one) drop equipment on kill - [ ] `quest_eternal` achievement requires 112 quests - [ ] `fully_equipped` achievement requires 78 equipment pieces - [ ] P50/P100/P150/P200 prestige achievements reward runestones - [ ] Adventurer cards show effective post-multiplier stats - [ ] Exploration areas unlock correctly when their zone is unlocked - [ ] Concurrent prestige requests return 409 - [ ] No loading screen flash after prestige - [ ] Daily challenge set always includes a clicks challenge - [ ] Resource bar shows `+N On Prestige` runestone preview ✨ This PR was crafted with help from Hikari~ 🌸 Reviewed-on: #135 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
561 lines
22 KiB
TypeScript
561 lines
22 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 { CraftingRecipe } from "@elysium/types";
|
|
|
|
export const defaultRecipes: Array<CraftingRecipe> = [
|
|
// Zone 1: verdant_vale
|
|
{
|
|
bonus: { type: "gold_income", value: 1.05 },
|
|
description:
|
|
"Sap from ancient heartwood trees, refined and bound with forest crystal. The resulting tincture accelerates the flow of wealth through your guild in ways the alchemists cannot fully explain.",
|
|
id: "heartwood_tincture",
|
|
name: "Heartwood Tincture",
|
|
requiredMaterials: [
|
|
{ materialId: "verdant_sap", quantity: 5 },
|
|
{ materialId: "forest_crystal", quantity: 3 },
|
|
],
|
|
zoneId: "verdant_vale",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.2 },
|
|
description:
|
|
"A ward fashioned from bark older than the kingdom. Its presence on the battlefield is not merely physical — something ancient watches through it.",
|
|
id: "elder_bark_shield",
|
|
name: "Elder Bark Shield",
|
|
requiredMaterials: [
|
|
{ materialId: "elder_bark", quantity: 2 },
|
|
{ materialId: "verdant_sap", quantity: 8 },
|
|
],
|
|
zoneId: "verdant_vale",
|
|
},
|
|
|
|
// Zone 2: shattered_ruins
|
|
{
|
|
bonus: { type: "essence_income", value: 1.05 },
|
|
description:
|
|
"The ruin dust and cursed fragments, carefully worked into a binding that borrows the essence-drawing power of the fallen civilisation's final enchantments.",
|
|
id: "runic_binding",
|
|
name: "Runic Binding",
|
|
requiredMaterials: [
|
|
{ materialId: "ruin_dust", quantity: 8 },
|
|
{ materialId: "cursed_fragment", quantity: 4 },
|
|
],
|
|
zoneId: "shattered_ruins",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.08 },
|
|
description:
|
|
"A charm set with a chip of the elder dragon's scale. The dragon would be furious if he knew. He would also be impressed.",
|
|
id: "dragon_scale_charm",
|
|
name: "Dragon Scale Charm",
|
|
requiredMaterials: [
|
|
{ materialId: "dragonscale_chip", quantity: 2 },
|
|
{ materialId: "ruin_dust", quantity: 10 },
|
|
],
|
|
zoneId: "shattered_ruins",
|
|
},
|
|
|
|
// Zone 3: frozen_peaks
|
|
{
|
|
bonus: { type: "click_power", value: 1.08 },
|
|
description:
|
|
"Glacial ice ground and shaped into a lens that clarifies and focuses. Holding it, your guild's actions become sharper, more precise, more effective per motion.",
|
|
id: "glacial_lens",
|
|
name: "Glacial Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "glacial_ice", quantity: 8 },
|
|
{ materialId: "frost_crystal", quantity: 4 },
|
|
],
|
|
zoneId: "frozen_peaks",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.15 },
|
|
description:
|
|
"The void shard set in frost crystal, creating something that should not be possible: a stable window into the spaces between spaces. Profitable beyond what physics suggests.",
|
|
id: "void_fragment_amulet",
|
|
name: "Void Fragment Amulet",
|
|
requiredMaterials: [
|
|
{ materialId: "void_shard", quantity: 2 },
|
|
{ materialId: "frost_crystal", quantity: 6 },
|
|
],
|
|
zoneId: "frozen_peaks",
|
|
},
|
|
|
|
// Zone 4: shadow_marshes
|
|
{
|
|
bonus: { type: "essence_income", value: 1.08 },
|
|
description:
|
|
"Marsh roots processed with shadow essence into a refined compound that somehow makes the essence of things flow more freely toward your guild hall.",
|
|
id: "shadow_extract",
|
|
name: "Shadow Extract",
|
|
requiredMaterials: [
|
|
{ materialId: "marsh_root", quantity: 8 },
|
|
{ materialId: "shadow_essence", quantity: 4 },
|
|
],
|
|
zoneId: "shadow_marshes",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.15 },
|
|
description:
|
|
"The cursed bone and shadow essence combined into a focus that doesn't so much help your party fight as make things afraid of them before the battle begins.",
|
|
id: "cursed_focus",
|
|
name: "Cursed Focus",
|
|
requiredMaterials: [
|
|
{ materialId: "cursed_bone", quantity: 2 },
|
|
{ materialId: "shadow_essence", quantity: 6 },
|
|
],
|
|
zoneId: "shadow_marshes",
|
|
},
|
|
|
|
// Zone 5: volcanic_depths
|
|
{
|
|
bonus: { type: "gold_income", value: 1.1 },
|
|
description:
|
|
"A seal forged in the volcanic depths, using the eternal heat of the magma stone and ember crystal to create something that burns wealth into existence continuously.",
|
|
id: "magma_core_seal",
|
|
name: "Magma Core Seal",
|
|
requiredMaterials: [
|
|
{ materialId: "magma_stone", quantity: 8 },
|
|
{ materialId: "ember_crystal", quantity: 4 },
|
|
],
|
|
zoneId: "volcanic_depths",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.2 },
|
|
description:
|
|
"The legendary ore, smelted in the volcanic forges with magma stone as fuel. What emerges is something the fire elementals recognise — and fear slightly.",
|
|
id: "elemental_ore_ingot",
|
|
name: "Elemental Ore Ingot",
|
|
requiredMaterials: [
|
|
{ materialId: "legendary_ore", quantity: 2 },
|
|
{ materialId: "magma_stone", quantity: 10 },
|
|
],
|
|
zoneId: "volcanic_depths",
|
|
},
|
|
|
|
// Zone 6: astral_void
|
|
{
|
|
bonus: { type: "click_power", value: 1.12 },
|
|
description:
|
|
"Stardust arranged along astral threads into a map of the void that somehow, impossibly, shows your guild where to press and how to press it for maximum effect.",
|
|
id: "star_chart",
|
|
name: "Star Chart",
|
|
requiredMaterials: [
|
|
{ materialId: "stardust", quantity: 10 },
|
|
{ materialId: "astral_thread", quantity: 4 },
|
|
],
|
|
zoneId: "astral_void",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.12 },
|
|
description:
|
|
"A void crystal suspended in a matrix of stardust — something that exists in several places simultaneously and draws gold from all of them at once.",
|
|
id: "void_crystal_matrix",
|
|
name: "Void Crystal Matrix",
|
|
requiredMaterials: [
|
|
{ materialId: "void_crystal", quantity: 2 },
|
|
{ materialId: "stardust", quantity: 12 },
|
|
],
|
|
zoneId: "astral_void",
|
|
},
|
|
|
|
// Zone 7: celestial_reaches
|
|
{
|
|
bonus: { type: "essence_income", value: 1.12 },
|
|
description:
|
|
"Celestial dust and divine fragments ground into a lens that sees the essence in all things and draws a portion of it — gently, as the celestials would prefer.",
|
|
id: "celestial_lens",
|
|
name: "Celestial Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "celestial_dust", quantity: 10 },
|
|
{ materialId: "divine_fragment", quantity: 4 },
|
|
],
|
|
zoneId: "celestial_reaches",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.15 },
|
|
description:
|
|
"A choir shard set in divine fragments, still humming with the celestial harmonic. The resonance makes gold flow in its direction — not compelled, simply invited.",
|
|
id: "choir_resonator",
|
|
name: "Choir Resonator",
|
|
requiredMaterials: [
|
|
{ materialId: "choir_shard", quantity: 2 },
|
|
{ materialId: "divine_fragment", quantity: 6 },
|
|
],
|
|
zoneId: "celestial_reaches",
|
|
},
|
|
|
|
// Zone 8: abyssal_trench
|
|
{
|
|
bonus: { type: "combat_power", value: 1.25 },
|
|
description:
|
|
"Trench coral and pressure gem combined under conditions that should have destroyed both. The result is something that survived conditions nothing should survive, which is ideal for combat.",
|
|
id: "pressure_forged_core",
|
|
name: "Pressure-Forged Core",
|
|
requiredMaterials: [
|
|
{ materialId: "trench_coral", quantity: 10 },
|
|
{ materialId: "pressure_gem", quantity: 4 },
|
|
],
|
|
zoneId: "abyssal_trench",
|
|
},
|
|
{
|
|
bonus: { type: "click_power", value: 1.15 },
|
|
description:
|
|
"A talisman set with the ancient tooth, suspended in trench coral carvings. Your party fights differently with this at their chest. More deliberately. More completely.",
|
|
id: "ancient_fang_talisman",
|
|
name: "Ancient Fang Talisman",
|
|
requiredMaterials: [
|
|
{ materialId: "ancient_tooth", quantity: 2 },
|
|
{ materialId: "trench_coral", quantity: 12 },
|
|
],
|
|
zoneId: "abyssal_trench",
|
|
},
|
|
|
|
// Zone 9: infernal_court
|
|
{
|
|
bonus: { type: "gold_income", value: 1.15 },
|
|
description:
|
|
"A seal of infernal court authority, forged from brimstone and ichor. The court doesn't know you have this. It's better that way. It does make trade extremely efficient.",
|
|
id: "court_seal",
|
|
name: "Court Seal",
|
|
requiredMaterials: [
|
|
{ materialId: "brimstone_flake", quantity: 10 },
|
|
{ materialId: "demon_ichor", quantity: 5 },
|
|
],
|
|
zoneId: "infernal_court",
|
|
},
|
|
{
|
|
bonus: { type: "essence_income", value: 1.2 },
|
|
description:
|
|
"Soul residue and demon ichor worked into a catalyst that draws the essence from everything around it — gently, without drawing the court's attention. Usually.",
|
|
id: "soul_bound_catalyst",
|
|
name: "Soul-Bound Catalyst",
|
|
requiredMaterials: [
|
|
{ materialId: "soul_residue", quantity: 2 },
|
|
{ materialId: "demon_ichor", quantity: 8 },
|
|
],
|
|
zoneId: "infernal_court",
|
|
},
|
|
|
|
// Zone 10: crystalline_spire
|
|
{
|
|
bonus: { type: "click_power", value: 1.18 },
|
|
description:
|
|
"Prism dust and calculation shards assembled into an array that the spire's intelligence would call elegant, if it had aesthetic preferences, which it might.",
|
|
id: "prism_array",
|
|
name: "Prism Array",
|
|
requiredMaterials: [
|
|
{ materialId: "prism_dust", quantity: 10 },
|
|
{ materialId: "calculation_shard", quantity: 4 },
|
|
],
|
|
zoneId: "crystalline_spire",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.18 },
|
|
description:
|
|
"A possibility crystal contained within a calculation shard framework. It runs through every possible outcome of every guild action and finds the one with the highest gold yield.",
|
|
id: "possibility_engine",
|
|
name: "Possibility Engine",
|
|
requiredMaterials: [
|
|
{ materialId: "possibility_crystal", quantity: 2 },
|
|
{ materialId: "calculation_shard", quantity: 6 },
|
|
],
|
|
zoneId: "crystalline_spire",
|
|
},
|
|
|
|
// Zone 11: void_sanctum
|
|
{
|
|
bonus: { type: "combat_power", value: 1.28 },
|
|
description:
|
|
"Null matter and resonance fragments assembled into something that generates a field where the laws governing how hard things are to kill become negotiable.",
|
|
id: "null_field_generator",
|
|
name: "Null Field Generator",
|
|
requiredMaterials: [
|
|
{ materialId: "null_matter", quantity: 10 },
|
|
{ materialId: "resonance_fragment", quantity: 4 },
|
|
],
|
|
zoneId: "void_sanctum",
|
|
},
|
|
{
|
|
bonus: { type: "essence_income", value: 1.18 },
|
|
description:
|
|
"A sanctum core and resonance fragments shaped into a key to something. The essence flows through it like it was designed to carry essence, which it may have been.",
|
|
id: "sanctum_key",
|
|
name: "Sanctum Key",
|
|
requiredMaterials: [
|
|
{ materialId: "sanctum_core", quantity: 2 },
|
|
{ materialId: "resonance_fragment", quantity: 6 },
|
|
],
|
|
zoneId: "void_sanctum",
|
|
},
|
|
|
|
// Zone 12: eternal_throne
|
|
{
|
|
bonus: { type: "gold_income", value: 1.2 },
|
|
description:
|
|
"Throne dust pressed into throne dust-lacquered crown fragments, shaped into a circlet. Wearing it — metaphorically — makes gold accumulate with the inevitability of authority.",
|
|
id: "crown_circlet",
|
|
name: "Crown Circlet",
|
|
requiredMaterials: [
|
|
{ materialId: "throne_dust", quantity: 10 },
|
|
{ materialId: "crown_fragment", quantity: 4 },
|
|
],
|
|
zoneId: "eternal_throne",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.3 },
|
|
description:
|
|
"An eternity splinter set into crown fragments, shaped into a ring. What it binds is unclear. Whatever it is, it makes your party significantly harder to kill.",
|
|
id: "eternity_bound_ring",
|
|
name: "Eternity-Bound Ring",
|
|
requiredMaterials: [
|
|
{ materialId: "eternity_splinter", quantity: 2 },
|
|
{ materialId: "crown_fragment", quantity: 6 },
|
|
],
|
|
zoneId: "eternal_throne",
|
|
},
|
|
|
|
// Zone 13: primordial_chaos
|
|
{
|
|
bonus: { type: "click_power", value: 1.2 },
|
|
description:
|
|
"Chaos fragments and creation shards arranged into a lens that hasn't decided what it wants to focus on yet, which somehow makes every click land harder than it should.",
|
|
id: "chaos_lens",
|
|
name: "Chaos Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "chaos_fragment", quantity: 10 },
|
|
{ materialId: "creation_shard", quantity: 4 },
|
|
],
|
|
zoneId: "primordial_chaos",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.22 },
|
|
description:
|
|
"Primordial essence held in a creation shard framework. It hums constantly. Gold flows toward it with the enthusiasm of something that wants to become something.",
|
|
id: "creation_core",
|
|
name: "Creation Core",
|
|
requiredMaterials: [
|
|
{ materialId: "primordial_essence", quantity: 2 },
|
|
{ materialId: "creation_shard", quantity: 6 },
|
|
],
|
|
zoneId: "primordial_chaos",
|
|
},
|
|
|
|
// Zone 14: infinite_expanse
|
|
{
|
|
bonus: { type: "essence_income", value: 1.2 },
|
|
description:
|
|
"Expanse dust wound around distance crystals into a coil that draws essence from distances too vast to measure, compressing it into something your guild can actually use.",
|
|
id: "distance_coil",
|
|
name: "Distance Coil",
|
|
requiredMaterials: [
|
|
{ materialId: "expanse_dust", quantity: 10 },
|
|
{ materialId: "distance_crystal", quantity: 4 },
|
|
],
|
|
zoneId: "infinite_expanse",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.22 },
|
|
description:
|
|
"An infinity shard mounted in a distance crystal frame. The prism reflects gold from an infinite number of directions simultaneously. The math works out favourably.",
|
|
id: "infinity_prism",
|
|
name: "Infinity Prism",
|
|
requiredMaterials: [
|
|
{ materialId: "infinity_shard", quantity: 2 },
|
|
{ materialId: "distance_crystal", quantity: 6 },
|
|
],
|
|
zoneId: "infinite_expanse",
|
|
},
|
|
|
|
// Zone 15: reality_forge
|
|
{
|
|
bonus: { type: "combat_power", value: 1.35 },
|
|
description:
|
|
"Forge ash smelted with creation tools into an ingot of compressed reality. Your party hits harder when carrying it. Reality does not enjoy being concentrated like this.",
|
|
id: "reality_ingot",
|
|
name: "Reality Ingot",
|
|
requiredMaterials: [
|
|
{ materialId: "forge_ash", quantity: 10 },
|
|
{ materialId: "creation_tool", quantity: 4 },
|
|
],
|
|
zoneId: "reality_forge",
|
|
},
|
|
{
|
|
bonus: { type: "click_power", value: 1.22 },
|
|
description:
|
|
"A reality shard carefully shaped with creation tools into something that could, theoretically, become a universe. Instead it makes your clicks unreasonably effective.",
|
|
id: "universe_seed",
|
|
name: "Universe Seed",
|
|
requiredMaterials: [
|
|
{ materialId: "reality_shard", quantity: 2 },
|
|
{ materialId: "creation_tool", quantity: 6 },
|
|
],
|
|
zoneId: "reality_forge",
|
|
},
|
|
|
|
// Zone 16: cosmic_maelstrom
|
|
{
|
|
bonus: { type: "gold_income", value: 1.25 },
|
|
description:
|
|
"Maelstrom debris and force crystals ground into a lens at the intersection of fundamental forces. Gold flows toward it with the same inevitability that galaxies flow toward gravity.",
|
|
id: "force_lens",
|
|
name: "Force Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "maelstrom_debris", quantity: 10 },
|
|
{ materialId: "force_crystal", quantity: 4 },
|
|
],
|
|
zoneId: "cosmic_maelstrom",
|
|
},
|
|
{
|
|
bonus: { type: "essence_income", value: 1.22 },
|
|
description:
|
|
"A cosmic fragment suspended in a force crystal matrix — a piece of the maelstrom's impossible calm, holding the eye of the storm. Essence accumulates in its vicinity.",
|
|
id: "maelstrom_eye",
|
|
name: "Maelstrom Eye",
|
|
requiredMaterials: [
|
|
{ materialId: "cosmic_fragment", quantity: 2 },
|
|
{ materialId: "force_crystal", quantity: 6 },
|
|
],
|
|
zoneId: "cosmic_maelstrom",
|
|
},
|
|
|
|
// Zone 17: primeval_sanctum
|
|
{
|
|
bonus: { type: "combat_power", value: 1.4 },
|
|
description:
|
|
"Ancient dust and memory shards arranged into something that remembers how to fight before fighting was invented. Your party benefits from this instinct enormously.",
|
|
id: "ancient_memory_array",
|
|
name: "Ancient Memory Array",
|
|
requiredMaterials: [
|
|
{ materialId: "ancient_dust", quantity: 10 },
|
|
{ materialId: "memory_shard", quantity: 4 },
|
|
],
|
|
zoneId: "primeval_sanctum",
|
|
},
|
|
{
|
|
bonus: { type: "click_power", value: 1.25 },
|
|
description:
|
|
"The primeval relic, set into a memory shard framework. What function it originally served is unknowable. In your guild's hands, it makes every action more deliberate and more powerful.",
|
|
id: "first_artefact",
|
|
name: "First Artefact",
|
|
requiredMaterials: [
|
|
{ materialId: "primeval_relic", quantity: 2 },
|
|
{ materialId: "memory_shard", quantity: 6 },
|
|
],
|
|
zoneId: "primeval_sanctum",
|
|
},
|
|
|
|
// ── Cross-zone recipes ─────────────────────────────────────────────────────
|
|
{
|
|
bonus: { type: "gold_income", value: 1.28 },
|
|
description:
|
|
"Verdant sap from the oldest trees, refined in ember crystal heat and bound by legendary ore from the volcanic forges. The resulting tincture fuses the forest's patient growth with fire's relentless drive — gold accumulates with unusual enthusiasm.",
|
|
id: "verdant_pyre_seal",
|
|
name: "Verdant Pyre Seal",
|
|
requiredMaterials: [
|
|
{ materialId: "verdant_sap", quantity: 8 },
|
|
{ materialId: "ember_crystal", quantity: 6 },
|
|
{ materialId: "legendary_ore", quantity: 2 },
|
|
],
|
|
zoneId: "volcanic_depths",
|
|
},
|
|
{
|
|
bonus: { type: "click_power", value: 1.22 },
|
|
description:
|
|
"A void shard frozen into glacial ice and then submerged in shadow essence — the cold of nothing meeting the dark of everything. The resulting weave sharpens strikes with an emptiness that the shadows themselves cannot resist.",
|
|
id: "voidfrost_weave",
|
|
name: "Voidfrost Weave",
|
|
requiredMaterials: [
|
|
{ materialId: "glacial_ice", quantity: 8 },
|
|
{ materialId: "void_shard", quantity: 3 },
|
|
{ materialId: "shadow_essence", quantity: 5 },
|
|
],
|
|
zoneId: "shadow_marshes",
|
|
},
|
|
{
|
|
bonus: { type: "essence_income", value: 1.28 },
|
|
description:
|
|
"A choir shard from the celestial reaches lowered into the crushing dark of the abyssal trench and set alongside an ancient tooth. The celestial harmonic does not stop in the deep — it deepens. Essence flows toward it from every direction simultaneously.",
|
|
id: "choir_of_the_deep",
|
|
name: "Choir of the Deep",
|
|
requiredMaterials: [
|
|
{ materialId: "celestial_dust", quantity: 8 },
|
|
{ materialId: "choir_shard", quantity: 2 },
|
|
{ materialId: "ancient_tooth", quantity: 2 },
|
|
{ materialId: "pressure_gem", quantity: 5 },
|
|
],
|
|
zoneId: "abyssal_trench",
|
|
},
|
|
{
|
|
bonus: { type: "click_power", value: 1.38 },
|
|
description:
|
|
"A primeval relic submerged at the absolute boundary of existence alongside omega crystals and boundary shards — the first and last thing, unified. Every action your guild takes through it is simultaneously the most ancient and most final thing that has ever happened. It does not miss.",
|
|
id: "primal_omega_lens",
|
|
name: "Primal Omega Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "primeval_relic", quantity: 2 },
|
|
{ materialId: "boundary_shard", quantity: 4 },
|
|
{ materialId: "omega_crystal", quantity: 2 },
|
|
],
|
|
zoneId: "the_absolute",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.65 },
|
|
description:
|
|
"An eternity splinter from the eternal throne, set at the boundary between everything and nothing with an omega crystal and bound by boundary shards. Where eternity meets the absolute, something is forged that has never existed and will never exist again. Your party fights as if they know this.",
|
|
id: "eternal_omega",
|
|
name: "Eternal Omega",
|
|
requiredMaterials: [
|
|
{ materialId: "crown_fragment", quantity: 6 },
|
|
{ materialId: "eternity_splinter", quantity: 2 },
|
|
{ materialId: "boundary_shard", quantity: 4 },
|
|
{ materialId: "omega_crystal", quantity: 2 },
|
|
],
|
|
zoneId: "the_absolute",
|
|
},
|
|
|
|
// Zone 18: the_absolute
|
|
{
|
|
bonus: { type: "click_power", value: 1.28 },
|
|
description:
|
|
"Absolute fragments ground and set in an omega crystal lattice — an instrument of pure finality. Every action your guild takes through it carries the weight of an ending. It does not miss.",
|
|
id: "absolute_focus",
|
|
name: "Absolute Focus",
|
|
requiredMaterials: [
|
|
{ materialId: "absolute_fragment", quantity: 8 },
|
|
{ materialId: "omega_crystal", quantity: 3 },
|
|
],
|
|
zoneId: "the_absolute",
|
|
},
|
|
{
|
|
bonus: { type: "gold_income", value: 1.3 },
|
|
description:
|
|
"Absolute fragments and boundary shards ground into a lens that sees to the end of all things — and in seeing, draws the wealth inherent in finality toward your guild.",
|
|
id: "final_truth_lens",
|
|
name: "Final Truth Lens",
|
|
requiredMaterials: [
|
|
{ materialId: "absolute_fragment", quantity: 10 },
|
|
{ materialId: "boundary_shard", quantity: 4 },
|
|
],
|
|
zoneId: "the_absolute",
|
|
},
|
|
{
|
|
bonus: { type: "combat_power", value: 1.55 },
|
|
description:
|
|
"The last omega crystal, set at the convergence of boundary shards in the precise arrangement of an ending. What it does to combat is what endings do to everything: make it final.",
|
|
id: "omega_convergence",
|
|
name: "Omega Convergence",
|
|
requiredMaterials: [
|
|
{ materialId: "omega_crystal", quantity: 2 },
|
|
{ materialId: "boundary_shard", quantity: 6 },
|
|
],
|
|
zoneId: "the_absolute",
|
|
},
|
|
];
|