balance: crystal economy improvements (closes #165, #173, #215)

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
This commit is contained in:
2026-04-06 18:38:30 -07:00
committed by Naomi Carrigan
parent b5eff7de31
commit 4e2bc2cb98
3 changed files with 42 additions and 3 deletions
+3 -3
View File
@@ -247,7 +247,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "☄️", icon: "☄️",
id: "click_deity", id: "click_deity",
name: "Click Deity", name: "Click Deity",
reward: { crystals: 5000 }, reward: { crystals: 15_000 },
unlockedAt: null, unlockedAt: null,
}, },
// Endgame gold milestones // Endgame gold milestones
@@ -405,7 +405,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "💫", icon: "💫",
id: "prestige_master", id: "prestige_master",
name: "Master of Cycles", name: "Master of Cycles",
reward: { crystals: 5000 }, reward: { crystals: 15_000 },
unlockedAt: null, unlockedAt: null,
}, },
{ {
@@ -414,7 +414,7 @@ export const defaultAchievements: Array<Achievement> = [
icon: "🌠", icon: "🌠",
id: "prestige_legend", id: "prestige_legend",
name: "Legend of Eternity", name: "Legend of Eternity",
reward: { crystals: 25_000 }, reward: { crystals: 75_000 },
unlockedAt: null, unlockedAt: null,
}, },
{ {
+2
View File
@@ -19,6 +19,7 @@ export const defaultQuests: Array<Quest> = [
prerequisiteIds: [], prerequisiteIds: [],
rewards: [ rewards: [
{ amount: 500, type: "gold" }, { amount: 500, type: "gold" },
{ amount: 5, type: "crystals" },
{ targetId: "militia", type: "adventurer" }, { targetId: "militia", type: "adventurer" },
], ],
status: "available", status: "available",
@@ -33,6 +34,7 @@ export const defaultQuests: Array<Quest> = [
rewards: [ rewards: [
{ amount: 2000, type: "gold" }, { amount: 2000, type: "gold" },
{ amount: 5, type: "essence" }, { amount: 5, type: "essence" },
{ amount: 10, type: "crystals" },
{ targetId: "peasant_1", type: "upgrade" }, { targetId: "peasant_1", type: "upgrade" },
{ targetId: "apprentice_1", type: "upgrade" }, { targetId: "apprentice_1", type: "upgrade" },
{ targetId: "apprentice", type: "adventurer" }, { targetId: "apprentice", type: "adventurer" },
+37
View File
@@ -496,6 +496,43 @@ export const defaultUpgrades: Array<Upgrade> = [
unlocked: false, unlocked: false,
}, },
// ── Purchasable essence/crystal sink upgrades ───────────────────────────── // ── 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, costCrystals: 0,
costEssence: 5_000_000, costEssence: 5_000_000,