diff --git a/CLAUDE.md b/CLAUDE.md index a877cf3..8aef5f5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -14,7 +14,7 @@ Game art is generated via the Gemini API (`gemini-3-pro-image-preview`, ~$0.134/ ### Process 1. Generate images with `curl` to `https://generativelanguage.googleapis.com/v1beta/models/gemini-3-pro-image-preview:generateContent?key=`, requesting soft-shaded anime style 2. Save responses to `/home/naomi/code/naomi/elysium/img//.jpg` -3. Upload to R2 with: `AWS_ACCESS_KEY_ID=dd0a3d73969143ada84d50f8940cc5e2 AWS_SECRET_ACCESS_KEY=f73e9907da1b2297e93e17f786d6446d33d4ac60e185879578a0d5020899b18e aws s3 sync img/ s3://nhcarrigan-cdn/elysium/ --endpoint-url https://751c386661d378cc032093493cfb0869.r2.cloudflarestorage.com` +3. Upload to R2 with the AWS CLI — credentials are in the global `~/.claude/CLAUDE.md` (never commit them here) 4. Delete the local `img/` directory before committing (images live on CDN only) ### CDN URL Helper diff --git a/apps/api/src/data/upgrades.ts b/apps/api/src/data/upgrades.ts index 6dc88e3..17fc9bc 100644 --- a/apps/api/src/data/upgrades.ts +++ b/apps/api/src/data/upgrades.ts @@ -767,4 +767,70 @@ export const defaultUpgrades: Array = [ target: "adventurer", unlocked: false, }, + // ── Essence Sinks ───────────────────────────────────────────────────────── + { + costCrystals: 0, + costEssence: 1e12, + costGold: 0, + description: + "Channel a vast reservoir of essence into the guild's core — all production ×2.", + id: "essence_sink_1", + multiplier: 2, + name: "Essence Infusion I", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 0, + costEssence: 5e12, + costGold: 0, + description: + "A deeper infusion saturates every operation with raw essence — all production ×2.", + id: "essence_sink_2", + multiplier: 2, + name: "Essence Infusion II", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 0, + costEssence: 2.5e13, + costGold: 0, + description: + "Essence floods the ley-lines binding your guild — all production ×2.", + id: "essence_sink_3", + multiplier: 2, + name: "Essence Infusion III", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 0, + costEssence: 1e14, + costGold: 0, + description: + "The guild breathes essence as its very lifeblood — all production ×3.", + id: "essence_sink_4", + multiplier: 3, + name: "Essence Infusion IV", + purchased: false, + target: "global", + unlocked: true, + }, + { + costCrystals: 0, + costEssence: 5e14, + costGold: 0, + description: + "Essence transcends material form and reshapes reality itself — all production ×5.", + id: "essence_sink_5", + multiplier: 5, + name: "Essence Infusion V", + purchased: false, + target: "global", + unlocked: true, + }, ]; diff --git a/apps/web/src/components/game/aboutPanel.tsx b/apps/web/src/components/game/aboutPanel.tsx index c159b37..1c5caf1 100644 --- a/apps/web/src/components/game/aboutPanel.tsx +++ b/apps/web/src/components/game/aboutPanel.tsx @@ -34,7 +34,10 @@ const howToPlay = [ + " for the current run and stack multiplicatively — two ×2 upgrades" + " targeting the same adventurer combine to give ×4, not ×3. Global" + " upgrades multiply on top of adventurer-specific ones, so stacking" - + " both types compounds the effect significantly.", + + " both types compounds the effect significantly. Late in a run, look" + + " for the Essence Infusion upgrades — five powerful global multipliers" + + " purchasable purely with essence, giving that resource an ongoing" + + " use when gold upgrades are all bought.", title: "🔧 Upgrades", }, {