From 4e2bc2cb98df5a8f2f98a4b9dca242e56b9f7c2f Mon Sep 17 00:00:00 2001 From: Hikari Date: Mon, 6 Apr 2026 18:38:30 -0700 Subject: [PATCH] balance: crystal economy improvements (closes #165, #173, #215) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Early game: first_steps and goblin_camp quests now award a small crystal bonus so the crystal economy is visible from turn one. Mid-game income: click_deity (1M clicks) 5k→15k, prestige_master (P10) 5k→15k, prestige_legend (P25) 25k→75k to close the gap before the first large crystal-cost upgrade. Crystal sinks: add crystal_pulse (3k→×1.5), crystal_surge (20k→×2), and crystal_tempest (150k→×3) global upgrades to fill the dead zone between crystal_mastery (600 crystals) and the existing 2M+ adventurer upgrades. Closes #165 Closes #173 Closes #215 --- apps/api/src/data/achievements.ts | 6 ++--- apps/api/src/data/quests.ts | 2 ++ apps/api/src/data/upgrades.ts | 37 +++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/apps/api/src/data/achievements.ts b/apps/api/src/data/achievements.ts index 11f3114..6a6781e 100644 --- a/apps/api/src/data/achievements.ts +++ b/apps/api/src/data/achievements.ts @@ -247,7 +247,7 @@ export const defaultAchievements: Array = [ icon: "☄️", id: "click_deity", name: "Click Deity", - reward: { crystals: 5000 }, + reward: { crystals: 15_000 }, unlockedAt: null, }, // Endgame gold milestones @@ -405,7 +405,7 @@ export const defaultAchievements: Array = [ icon: "💫", id: "prestige_master", name: "Master of Cycles", - reward: { crystals: 5000 }, + reward: { crystals: 15_000 }, unlockedAt: null, }, { @@ -414,7 +414,7 @@ export const defaultAchievements: Array = [ icon: "🌠", id: "prestige_legend", name: "Legend of Eternity", - reward: { crystals: 25_000 }, + reward: { crystals: 75_000 }, unlockedAt: null, }, { diff --git a/apps/api/src/data/quests.ts b/apps/api/src/data/quests.ts index fac9c44..e103f4f 100644 --- a/apps/api/src/data/quests.ts +++ b/apps/api/src/data/quests.ts @@ -19,6 +19,7 @@ export const defaultQuests: Array = [ prerequisiteIds: [], rewards: [ { amount: 500, type: "gold" }, + { amount: 5, type: "crystals" }, { targetId: "militia", type: "adventurer" }, ], status: "available", @@ -33,6 +34,7 @@ export const defaultQuests: Array = [ rewards: [ { amount: 2000, type: "gold" }, { amount: 5, type: "essence" }, + { amount: 10, type: "crystals" }, { targetId: "peasant_1", type: "upgrade" }, { targetId: "apprentice_1", type: "upgrade" }, { targetId: "apprentice", type: "adventurer" }, diff --git a/apps/api/src/data/upgrades.ts b/apps/api/src/data/upgrades.ts index afbd696..665cd05 100644 --- a/apps/api/src/data/upgrades.ts +++ b/apps/api/src/data/upgrades.ts @@ -496,6 +496,43 @@ export const defaultUpgrades: Array = [ unlocked: false, }, // ── Purchasable essence/crystal sink upgrades ───────────────────────────── + { + costCrystals: 3000, + costEssence: 0, + costGold: 0, + description: "Crystalline energy pulses through your guild's operations. All income +50%.", + id: "crystal_pulse", + multiplier: 1.5, + name: "Crystal Pulse", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 20_000, + costEssence: 0, + costGold: 0, + description: + "Crystal resonance surges into every process your guild undertakes. All income doubled.", + id: "crystal_surge", + multiplier: 2, + name: "Crystal Surge", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 150_000, + costEssence: 0, + costGold: 0, + description: "Your guild's operations are saturated with crystalline power. All income x3.", + id: "crystal_tempest", + multiplier: 3, + name: "Crystal Tempest", + purchased: false, + target: "global", + unlocked: true, + }, { costCrystals: 0, costEssence: 5_000_000,